pub struct EntityDef {Show 22 fields
pub id: String,
pub name: Option<String>,
pub kind: EntityKind,
pub category: String,
pub width: f32,
pub height: f32,
pub eye_height: Option<f32>,
pub fire_immune: bool,
pub no_gravity: bool,
pub pushable: Option<bool>,
pub solid: bool,
pub tracking_range: u32,
pub update_interval: u32,
pub attributes: Ordered<f64>,
pub model: Option<String>,
pub animations: Option<String>,
pub clips: Ordered<String>,
pub spawn_egg: Option<[u32; 2]>,
pub goals: Vec<String>,
pub ticks: bool,
pub place_sound: Option<String>,
pub break_sound: Option<String>,
}Expand description
An entity type to register (.yentity). Its look is a body model
(model, .ymodel) with clips by state; what it does beyond goals is
the mod’s code (entity events, a tick of its own).
Fields§
§id: StringIts id; a source may leave it out: the file’s name, the build fills it in.
name: Option<String>Its name (a text or a @Set.key resource); default: the id’s lang key.
kind: EntityKind§category: StringIts spawn group (MobCategory): misc, monster, creature,
ambient, water_creature, water_ambient, underground_water_creature.
width: f32Hitbox, blocks.
height: f32§eye_height: Option<f32>Eye height, blocks; default 85% of the height.
fire_immune: boolLava and fire don’t hurt it.
no_gravity: boolIt doesn’t fall.
pushable: Option<bool>Others push it (living things by default).
solid: boolOthers stand on and bump into it as into a block (a boat).
tracking_range: u32How far players see it, chunks.
update_interval: u32How often its movement is sent, ticks.
attributes: Ordered<f64>Living and mob attributes by id: max_health, movement_speed,
attack_damage, follow_range, armor, knockback_resistance… (the
game’s, minecraft: optional, or a mod’s).
model: Option<String>Its body model (.ymodel id); none: the mod draws it (on_body).
animations: Option<String>Its clips (.yanim id).
clips: Ordered<String>Clip by state: idle, walk, attack, hurt, death, or the mod’s
own states (entity data yog:state).
spawn_egg: Option<[u32; 2]>Spawn egg colors [base, spots] (0xRRGGBB); none: no egg.
goals: Vec<String>Mobs’ AI goals, in priority order — the game’s by name: float,
panic, melee_attack, wander, look_at_player,
look_around, target_player, avoid_player.
ticks: boolThe mod handles each tick of every entity of this type
(yog_event::entity::game::Tick, keyed by the type).
place_sound: Option<String>A hanging thing’s sound events when it’s placed and when it breaks; default: a painting’s.
break_sound: Option<String>Implementations§
Trait Implementations§
Source§impl Schema for EntityDef
impl Schema for EntityDef
Source§fn encode(&self, __yog_w: &mut Writer)
fn encode(&self, __yog_w: &mut Writer)
Schema::write’s
value encoded, unless the type knows better (derived ones do).Source§fn decode(__yog_d: &mut Decoder<'_>) -> Option<EntityDef>
fn decode(__yog_d: &mut Decoder<'_>) -> Option<EntityDef>
None when it isn’t
what Schema::encode writes — then read_bytes reads the slow
way, which says what’s wrong. Through a value unless the type knows
better (derived ones do).Source§fn pack(&self, __yog_p: &mut Packer)
fn pack(&self, __yog_p: &mut Packer)
crate::frame): its binary form as
bytes, unless the type packs itself (derived ones and plain types do).Source§fn unpack(__yog_u: &mut Unpacker<'_>) -> Option<EntityDef>
fn unpack(__yog_u: &mut Unpacker<'_>) -> Option<EntityDef>
None if the bytes aren’t what
Schema::pack writes.Source§fn read(v: &ValueRef<'_>, cx: &mut Reader<'_>) -> Option<EntityDef>
fn read(v: &ValueRef<'_>, cx: &mut Reader<'_>) -> Option<EntityDef>
v. Problems go to cx at its current path; None when the
value couldn’t be read (the problem is in cx).Source§fn absent() -> Option<Self>
fn absent() -> Option<Self>
None: the field is required.Source§fn pack_list(items: &[Self], p: &mut Packer)
fn pack_list(items: &[Self], p: &mut Packer)
Source§fn encode_list(items: &[Self], w: &mut Writer)
fn encode_list(items: &[Self], w: &mut Writer)
Auto Trait Implementations§
impl Freeze for EntityDef
impl RefUnwindSafe for EntityDef
impl Send for EntityDef
impl Sync for EntityDef
impl Unpin for EntityDef
impl UnsafeUnpin for EntityDef
impl UnwindSafe for EntityDef
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Message for Twhere
T: Schema,
impl<T> Message for Twhere
T: Schema,
Source§fn from_bytes(bytes: &[u8]) -> Option<Self>
fn from_bytes(bytes: &[u8]) -> Option<Self>
None if it isn’t one.Source§fn with_bytes<R>(&self, f: impl FnOnce(&[u8]) -> R) -> R
fn with_bytes<R>(&self, f: impl FnOnce(&[u8]) -> R) -> R
f on the payload, packed in this thread’s reused buffers: nothing
allocated once they’ve grown to the thread’s messages.