pub struct BossCape {
pub cloth: ClothStrip,
pub anchor_count: usize,
pub anchor_offsets: Vec<Vec3>,
pub boss_position: Vec3,
pub prev_boss_position: Vec3,
}Expand description
A cloth strip attached to a boss entity. Anchor points (top row) follow the boss position. Responds to vortex fields and movement.
Fields§
§cloth: ClothStrip§anchor_count: usizeNumber of top-row anchor points.
anchor_offsets: Vec<Vec3>Local offsets of anchor points relative to boss position.
boss_position: Vec3Current boss position.
prev_boss_position: Vec3Previous boss position (for velocity-based sway).
Implementations§
Source§impl BossCape
impl BossCape
Sourcepub fn new(boss_pos: Vec3, width: usize, height: usize, spacing: f32) -> Self
pub fn new(boss_pos: Vec3, width: usize, height: usize, spacing: f32) -> Self
Create a cape that is width points across and height points long,
attached at the boss position.
Sourcepub fn update(&mut self, new_boss_pos: Vec3, dt: f32)
pub fn update(&mut self, new_boss_pos: Vec3, dt: f32)
Update boss position and step the cape simulation.
Sourcepub fn apply_vortex(&mut self, origin: Vec3, strength: f32, radius: f32)
pub fn apply_vortex(&mut self, origin: Vec3, strength: f32, radius: f32)
Apply a vortex field (e.g., from a spell). Points closer to origin
receive a tangential swirling force.
Sourcepub fn get_render_data(&self) -> Vec<[f32; 3]>
pub fn get_render_data(&self) -> Vec<[f32; 3]>
Get render data.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BossCape
impl RefUnwindSafe for BossCape
impl Send for BossCape
impl Sync for BossCape
impl Unpin for BossCape
impl UnsafeUnpin for BossCape
impl UnwindSafe for BossCape
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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