pub struct Destruct { /* private fields */ }Expand description
A destruction state of a building piece.
Each piece can have multiple destructs representing different damage states. Destructs contain all the gameplay logic for that damage state: platforms, pipes, gates, EF lines, collision, etc.
§Fields
name- Name identifier for this destruction stateindex- Index of this destructcollision_3d- Collision mesh (legacy, moved to.cs2.collisionin newer games)collision_outlines- 2D collision outlineswindows- Number of window positionsdoors- Number of door positionsgates- Gate collision data for wall gatespipes- Unit movement paths (stairs, ladders, doors, etc.)orange_thingies- Unknown (possibly no-go zones)platforms- Walkable surfaces for unitsuk_2- Unknown fieldbounding_box- Bounding box for this destructcannon_emitters- Projectile emitter count for cannons (legacy)arrow_emitters- Projectile emitters for arrows (legacy)docking_points- Number of docking pointssoft_collisions- Soft collision datauk_7- Unknown fieldfile_refs- Attached model references (e.g., torches)ef_lines- Entity Formation lines for unit positioningdocking_lines- Lines where siege equipment can attachf_1- Unknown fieldaction_vfx- VFX for actionsaction_vfx_attachments- VFX attachment pointsbin_data- Unknown binary data (correlates with VFX count)bin_data_2- Unknown binary data (present in some Three Kingdoms gates)
§Examples
ⓘ
for destruct in piece.destructs() {
println!("Destruct '{}': {} platforms, {} pipes",
destruct.name(),
destruct.platforms().len(),
destruct.pipes().len()
);
}Trait Implementations§
Source§impl<'de> Deserialize<'de> for Destruct
impl<'de> Deserialize<'de> for Destruct
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 StructuralPartialEq for Destruct
Auto Trait Implementations§
impl Freeze for Destruct
impl RefUnwindSafe for Destruct
impl Send for Destruct
impl Sync for Destruct
impl Unpin for Destruct
impl UnsafeUnpin for Destruct
impl UnwindSafe for Destruct
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.