#[non_exhaustive]pub struct NpcDefinition {
pub sprite_id: u8,
pub x: u8,
pub y: u8,
pub movement: NpcMovementType,
pub facing: Direction,
pub range: u8,
pub text_id: u8,
}Expand description
Definition of an NPC placed on the map (static data from map objects).
This is a generic NPC definition with no game-specific fields. Game-specific data (e.g., trainer flags, item drops) should be stored in a separate struct alongside this one.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.sprite_id: u8Sprite ID (index into sprite table).
x: u8Starting position.
y: u8§movement: NpcMovementTypeMovement type.
facing: DirectionFacing direction.
range: u8Range of movement (0 = stationary).
text_id: u8Text ID triggered on interaction.
Implementations§
Source§impl NpcDefinition
impl NpcDefinition
Sourcepub fn new(
sprite_id: u8,
x: u8,
y: u8,
movement: NpcMovementType,
facing: Direction,
range: u8,
text_id: u8,
) -> Self
pub fn new( sprite_id: u8, x: u8, y: u8, movement: NpcMovementType, facing: Direction, range: u8, text_id: u8, ) -> Self
Create a new NPC definition.
Examples found in repository?
examples/hello_dotzuki.rs (line 369)
361fn build_town_map() -> MapData<MapId, Tileset, ()> {
362 let blocks: Vec<u8> = vec![
363 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
364 0xFF, 0x01, 0x01, 0x01, 0xFF,
365 0xFF, 0x01, 0x01, 0x01, 0xFF,
366 0xFF, 0x01, 0x01, 0x01, 0xFF,
367 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
368 ];
369 let npcs = vec![NpcDefinition::new(0, 2, 2, NpcMovementType::Stationary, Direction::Down, 0, 0)];
370 MapData::new(
371 MapId(0), 5, 5, Tileset(0), (),
372 blocks, vec![], npcs, vec![],
373 MapConnections::default(),
374 )
375}Trait Implementations§
Source§impl Clone for NpcDefinition
impl Clone for NpcDefinition
Source§fn clone(&self) -> NpcDefinition
fn clone(&self) -> NpcDefinition
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for NpcDefinition
impl Debug for NpcDefinition
Source§impl<'de> Deserialize<'de> for NpcDefinition
impl<'de> Deserialize<'de> for NpcDefinition
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for NpcDefinition
Source§impl PartialEq for NpcDefinition
impl PartialEq for NpcDefinition
Source§impl Serialize for NpcDefinition
impl Serialize for NpcDefinition
impl StructuralPartialEq for NpcDefinition
Auto Trait Implementations§
impl Freeze for NpcDefinition
impl RefUnwindSafe for NpcDefinition
impl Send for NpcDefinition
impl Sync for NpcDefinition
impl Unpin for NpcDefinition
impl UnsafeUnpin for NpcDefinition
impl UnwindSafe for NpcDefinition
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
Mutably borrows from an owned value. Read more