pub struct ObjectState { /* private fields */ }
Expand description

A component that contains all of this ObjectIds curves

Implementations§

source§

impl ObjectState

source

pub fn new(tick: GameTick) -> Self

Constructs a new empty ObjectState

source

pub fn created_tick(&self) -> GameTick

Returns the tick that this Object was created

source

pub fn destroyed_tick(&self) -> Option<GameTick>

Returns the tick that this Object was destroyed

source

pub fn is_destroyed(&self) -> bool

Returns whether this object has been destroyed or not

source

pub fn is_alive(&self) -> bool

Returns whether this object is still alive or not

source

pub fn destroy(&mut self, tick: GameTick)

Sets the tick that this object has been destroyed on

source

pub fn get_curves(&self, curve_name: &str) -> Option<&(CurveInfo, CurveData)>

Gets a reference to the CurveData of this object

source

pub fn register_new_curve( &mut self, curve_name: &str, curve_type: CurveType, component_type_name: String )

Registers a new curve under the given curve_name with the given curve_type for the given component_type_name. Is automatically called by [add_keyframe] as needed

source

pub fn add_keyframe( &mut self, curve_name: &str, tick: GameTick, keyframe: CurveKeyFrame )

Adds a new keyframe to the curve for the given GameTick.

Panics
  • If the insert keyframe does not match the registered component type

TODO: See if theres a way to make this generic to accept a T of any keyframe and it automatically inserts it

source

pub fn add_stepped_keyframe<T: SteppedKeyframe>( &mut self, curve_name: &str, tick: GameTick, keyframe: T )

Helper function to insert a [SteppedKeyFrame] into a curve for a specific tick

source

pub fn add_linear_keyframe<T: LinearKeyFrame>( &mut self, curve_name: &str, tick: GameTick, keyframe: T )

Helper function to insert a LinearKeyFrame into a curve for a specific tick

source

pub fn add_pulse_keyframe<T: PulseKeyframe>( &mut self, curve_name: &str, tick: GameTick, keyframe: T )

Helper function to insert a PulseKeyframe into a curve for a specific tick

source

pub fn remove_keyframe(&mut self, curve_name: &str, tick: GameTick)

Removes the keyframe from the given GameTick and returns it if it exists.

Silently fails if the curve has not been registered or if the keyframe does not exist

source

pub fn get_keyframes_in_tick( &self, tick: GameTick ) -> Vec<(String, CurveKeyFrame)>

Returns all keyframes that exist in this tick.

Note

This does NOT return an accurate state of the object for the given tick. This just returns all keyframes that exists in the given tick. Use ObjectState::get_object_state_for_tick to get the canonical state for a tick.

source

pub fn get_object_state_for_tick( &self, tick: GameTick ) -> Vec<(String, CurveKeyFrame)>

Returns a vec of what the calculated objects state should be for this tick

Trait Implementations§

source§

impl Component for ObjectStatewhere Self: Send + Sync + 'static,

§

type Storage = TableStorage

A marker type indicating the storage type used for this component. This must be either [TableStorage] or [SparseStorage].

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T, U> AsBindGroupShaderType<U> for Twhere U: ShaderType, &'a T: for<'a> Into<U>,

§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U

Return the T [ShaderType] for self. When used in [AsBindGroup] derives, it is safe to assume that all images in self exist.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<C> Bundle for Cwhere C: Component,

§

fn component_ids( components: &mut Components, storages: &mut Storages, ids: &mut impl FnMut(ComponentId) )

§

unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> Cwhere F: for<'a> FnMut(&'a mut T) -> OwningPtr<'a>,

§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for Twhere T: 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.
§

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.
§

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.
§

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.
§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<C> DynamicBundle for Cwhere C: Component,

§

fn get_components(self, func: &mut impl FnMut(StorageType, OwningPtr<'_>))

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere 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.

§

impl<T, U> ToSample<U> for Twhere U: FromSample<T>,

§

fn to_sample_(self) -> U

source§

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

§

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 Twhere U: TryFrom<T>,

§

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.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<S, T> Duplex<S> for Twhere T: FromSample<S> + ToSample<S>,