#[non_exhaustive]pub struct NpcDefinition {
pub sprite_id: u8,
pub x: u8,
pub y: u8,
pub movement: NpcMovementType,
pub wander_axis: NpcWanderAxis,
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.
wander_axis: NpcWanderAxisAxis restriction for Wander NPCs (classic movement byte 2). Ignored for other movement types.
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 (lines 521-529)
516fn build_town_map() -> MapData<MapId, Tileset, ()> {
517 let blocks: Vec<u8> = vec![
518 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0x01, 0x01, 0x01, 0xFF,
519 0xFF, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
520 ];
521 let npcs = vec![NpcDefinition::new(
522 0,
523 2,
524 2,
525 NpcMovementType::Stationary,
526 Direction::Down,
527 0,
528 0,
529 )];
530 MapData::new(
531 MapId(0),
532 5,
533 5,
534 Tileset(0),
535 (),
536 blocks,
537 vec![],
538 npcs,
539 vec![],
540 MapConnections::default(),
541 )
542}Sourcepub fn new_with_axis(
sprite_id: u8,
x: u8,
y: u8,
movement: NpcMovementType,
wander_axis: NpcWanderAxis,
facing: Direction,
range: u8,
text_id: u8,
) -> Self
pub fn new_with_axis( sprite_id: u8, x: u8, y: u8, movement: NpcMovementType, wander_axis: NpcWanderAxis, facing: Direction, range: u8, text_id: u8, ) -> Self
Create a new NPC definition with an explicit Wander axis (the classic
GB “movement byte 2”). Only meaningful for NpcMovementType::Wander.
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