Skip to main content

SavedPlaceable

Struct SavedPlaceable 

Source
pub struct SavedPlaceable {
Show 53 fields pub items: Vec<SavedItem>, pub placement: Placement, pub saves: SavingThrows, pub lock: LockState, pub portrait: SavedPortrait, pub trap_detectable: bool, pub trap_disarmable: bool, pub trap_one_shot: bool, pub trap_type: u8, pub trap_detect_dc: u8, pub trap_disarm_dc: u8, pub trap_flag: u8, pub on_closed: ResRef, pub on_damaged: ResRef, pub on_death: ResRef, pub on_disarm: ResRef, pub on_heartbeat: ResRef, pub on_lock: ResRef, pub on_melee_attacked: ResRef, pub on_open: ResRef, pub on_spell_cast_at: ResRef, pub on_trap_triggered: ResRef, pub on_unlock: ResRef, pub on_user_defined: ResRef, pub common: GitPlaceableCommon, pub animation: i32, pub body_bag: u8, pub commandable: bool, pub conversation: ResRef, pub current_hp: i16, pub description: GffLocalizedString, pub die_when_empty: bool, pub faction: u32, pub ground_pile: bool, pub hp: i16, pub hardness: u8, pub has_inventory: bool, pub is_body_bag: bool, pub is_body_bag_visible: bool, pub is_corpse: bool, pub light_state: u8, pub loc_name: GffLocalizedString, pub min1_hp: bool, pub on_dialog: ResRef, pub on_end_dialogue: ResRef, pub on_inv_disturbed: ResRef, pub on_used: ResRef, pub open: bool, pub party_interact: bool, pub plot: bool, pub is_static: bool, pub tag: String, pub useable: bool,
}
Expand description

A placeable as stored inside a save game’s module GIT.

Fields§

§items: Vec<SavedItem>

Inventory the placeable holds (ItemList).

Struct id 0 throughout, like a creature’s own inventory and unlike a store’s, which really is positional. The id a list of items takes is decided by the list that owns it rather than by the element type.

§placement: Placement

Placement, whose four labels sit at this object’s own level.

§saves: SavingThrows

Saving throws, likewise flat on the object.

§lock: LockState

Lock state, likewise flat on the object.

§portrait: SavedPortrait

Portrait, as whichever of the two labels the object carries.

Declared per owner rather than shared: the audit parts Portrait and PortraitId across doors, placeables and triggers on the absent axis. Both halves are this type’s, because one member stands for two labels and which one is written depends on the variant.

§trap_detectable: bool

Whether the trap can be spotted (TrapDetectable).

§trap_disarmable: bool

Whether the trap can be disarmed (TrapDisarmable).

§trap_one_shot: bool

Whether the trap fires once and clears (TrapOneShot).

§trap_type: u8

Trap row in traps.2da (TrapType).

§trap_detect_dc: u8

Difficulty of spotting the trap (TrapDetectDC).

§trap_disarm_dc: u8

Difficulty of disarming it (DisarmDC).

§trap_flag: u8

Whether a trap is present at all (TrapFlag).

§on_closed: ResRef

Fired when the object closes (OnClosed).

§on_damaged: ResRef

Fired when it takes damage (OnDamaged).

§on_death: ResRef

Fired when it is destroyed (OnDeath).

§on_disarm: ResRef

Fired when its trap is disarmed (OnDisarm).

§on_heartbeat: ResRef

Fired on the object heartbeat (OnHeartbeat).

§on_lock: ResRef

Fired when it is locked (OnLock).

§on_melee_attacked: ResRef

Fired when it is struck in melee (OnMeleeAttacked).

§on_open: ResRef

Fired when it opens (OnOpen).

§on_spell_cast_at: ResRef

Fired when a spell targets it (OnSpellCastAt).

§on_trap_triggered: ResRef

Fired when its trap goes off (OnTrapTriggered).

§on_unlock: ResRef

Fired when it is unlocked (OnUnlock).

§on_user_defined: ResRef

Fired on a user-defined event (OnUserDefined).

§common: GitPlaceableCommon

The block both forms carry, which the list declares as its element.

No #[gff]: the arm contributes its parts to the split, and the element is this block, so declaring it here too would make one label two declarations. The arm’s own codec reads and writes it.

§animation: i32

Current animation state (Animation).

§body_bag: u8

Body-bag row (BodyBag).

§commandable: bool

Accepts scripted commands (Commandable).

§conversation: ResRef

Attached conversation (Conversation).

§current_hp: i16

Current hit points (CurrentHP).

§description: GffLocalizedString

Description (Description).

§die_when_empty: bool

Destroy the object once emptied (DieWhenEmpty).

§faction: u32

Faction id (Faction).

§ground_pile: bool

Renders as a loose pile rather than a container (GroundPile).

§hp: i16

Maximum hit points (HP).

§hardness: u8

Damage reduction (Hardness).

§has_inventory: bool

Holds an inventory (HasInventory).

§is_body_bag: bool

Is a body bag (IsBodyBag).

§is_body_bag_visible: bool

Body bag is visible (IsBodyBagVisible).

§is_corpse: bool

Is a corpse (IsCorpse).

§light_state: u8

Light state (LightState).

§loc_name: GffLocalizedString

Displayed name (LocName).

§min1_hp: bool

Cannot be reduced below 1 HP (Min1HP).

§on_dialog: ResRef

OnDialog.

§on_end_dialogue: ResRef

OnEndDialogue.

§on_inv_disturbed: ResRef

OnInvDisturbed.

§on_used: ResRef

OnUsed.

§open: bool

Currently open (Open).

§party_interact: bool

Party members may use it directly (PartyInteract).

§plot: bool

Plot flag (Plot).

§is_static: bool

Static, non-interactive geometry (Static).

§tag: String

Object tag (Tag).

§useable: bool

Can be interacted with at all (Useable).

Implementations§

Source§

impl SavedPlaceable

Source

pub const SCHEMA: [Field; 48]

This view’s schema, one entry per declared field.

Source

pub const PARTS: &'static [&'static [Field]]

This type’s schema in parts, which is what a container holding it references.

Own fields first, then one part per flattened child in the order they are declared.

Source

pub fn read_declared(root: &GffStruct) -> Self

Reads every declared field off root.

Absent fields take the entry’s own answer, so a fallback is derived from the declaration rather than restated beside it.

A field declaring a hand-written read is left at that answer for the view to overwrite.

Source

pub fn write_declared(&self, root: &mut GffStruct)

Writes every declared field onto root, leaving out the ones their entry says the engine’s own writer leaves out.

A field declaring a hand-written write is not touched here.

Source§

impl SavedPlaceable

Source

pub fn read_element(structure: &GffStruct) -> Self

Reads one element, resolving the portrait’s two labels into one value.

Source

pub fn write_element(&self, structure: &mut GffStruct)

Writes one element, emitting whichever portrait label the value uses.

Trait Implementations§

Source§

impl Clone for SavedPlaceable

Source§

fn clone(&self) -> SavedPlaceable

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SavedPlaceable

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SavedPlaceable

Source§

fn default() -> Self

What a file omitting every label loads to, which is what makes an authored file land in a known state rather than at zero.

Source§

impl GitElement for SavedPlaceable

Source§

fn read(structure: &GffStruct) -> Self

Reads one element.
Source§

fn write(&self, id: i32) -> GffStruct

Writes one element into a struct carrying the list’s own id.
Source§

impl HasSchema for SavedPlaceable

Source§

fn schema() -> &'static [Field]

The root field schema for this resource type.
Source§

fn parts() -> &'static [&'static [Field]]

The same schema in parts, own fields first. Read more
Source§

impl PartialEq for SavedPlaceable

Source§

fn eq(&self, other: &SavedPlaceable) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for SavedPlaceable

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.