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<Self>
fn decode(__yog_d: &mut Decoder<'_>) -> Option<Self>
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<Self>
fn unpack(__yog_u: &mut Unpacker<'_>) -> Option<Self>
None if the bytes aren’t what
Schema::pack writes.Source§fn read(v: &ValueRef<'_>, cx: &mut Reader<'_>) -> Option<Self>
fn read(v: &ValueRef<'_>, cx: &mut Reader<'_>) -> Option<Self>
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.