pub struct AnimationStateMachine { /* private fields */ }
Expand description
Main state machine component
Insert this on the entity you want to control with the state machine.
§Note:
To function, the component requires an AnimationPlayer
on the same entity.
Example
fn setup(mut commands: Commands) {
let starting_state = "idle";
let my_states_map = HashMap::from([
("idle", AnimationState{
name: "idle".to_string(),
clip: idle_clip_handle,
interruptible: true,
}),
("run", AnimationState{
name: "run".to_string(),
clip: run_clip_handle,
interruptible: true,
}),
]);
let my_states_transitions_vec = vec![
StateMachineTransition::immediate(
AnimationStateRef::from_string("idle"),
AnimationStateRef::from_string("run"),
StateMachineTrigger::from(|vars| vars["run"].is_bool(true)),
),
];
let state_machine_vars = HashMap::from([
("run", StateMachineVariableType::Bool(false)),
]);
commands.spawn(SpatialBundle::default())
.insert(AnimationPlayer::default())
.insert(AnimationStateMachine::new(
starting_state,
my_states_map,
my_states_transitions_vec,
state_machine_vars,
));
}
Implementations§
Source§impl AnimationStateMachine
impl AnimationStateMachine
Sourcepub fn new<T: ToString>(
current_state: T,
states: HashMap<T, AnimationState>,
transitions: Vec<StateMachineTransition>,
variables: HashMap<T, StateMachineVariableType>,
) -> Self
pub fn new<T: ToString>( current_state: T, states: HashMap<T, AnimationState>, transitions: Vec<StateMachineTransition>, variables: HashMap<T, StateMachineVariableType>, ) -> Self
Creates a new AnimationStateMachine
Sourcepub fn update_variable<T: ToString>(
&mut self,
name: T,
value: StateMachineVariableType,
)
pub fn update_variable<T: ToString>( &mut self, name: T, value: StateMachineVariableType, )
Updates the value of the given variable
Trait Implementations§
Source§impl Component for AnimationStateMachine
impl Component for AnimationStateMachine
Source§type Storage = TableStorage
type Storage = TableStorage
A marker type indicating the storage type used for this component.
This must be either
TableStorage
or SparseStorage
.Source§impl Default for AnimationStateMachine
impl Default for AnimationStateMachine
Source§fn default() -> AnimationStateMachine
fn default() -> AnimationStateMachine
Returns the “default value” for a type. Read more
Source§impl FromReflect for AnimationStateMachinewhere
Self: Any + Send + Sync,
String: FromReflect + TypePath,
HashMap<String, AnimationState>: FromReflect + TypePath,
Vec<StateMachineTransition>: FromReflect + TypePath,
StateMachineVariables: FromReflect + TypePath,
impl FromReflect for AnimationStateMachinewhere
Self: Any + Send + Sync,
String: FromReflect + TypePath,
HashMap<String, AnimationState>: FromReflect + TypePath,
Vec<StateMachineTransition>: FromReflect + TypePath,
StateMachineVariables: FromReflect + TypePath,
Source§fn from_reflect(reflect: &dyn Reflect) -> Option<Self>
fn from_reflect(reflect: &dyn Reflect) -> Option<Self>
Constructs a concrete instance of
Self
from a reflected value.Source§fn take_from_reflect(
reflect: Box<dyn Reflect>,
) -> Result<Self, Box<dyn Reflect>>
fn take_from_reflect( reflect: Box<dyn Reflect>, ) -> Result<Self, Box<dyn Reflect>>
Attempts to downcast the given value to
Self
using,
constructing the value using from_reflect
if that fails. Read moreSource§impl GetTypeRegistration for AnimationStateMachinewhere
Self: Any + Send + Sync,
String: FromReflect + TypePath,
HashMap<String, AnimationState>: FromReflect + TypePath,
Vec<StateMachineTransition>: FromReflect + TypePath,
StateMachineVariables: FromReflect + TypePath,
impl GetTypeRegistration for AnimationStateMachinewhere
Self: Any + Send + Sync,
String: FromReflect + TypePath,
HashMap<String, AnimationState>: FromReflect + TypePath,
Vec<StateMachineTransition>: FromReflect + TypePath,
StateMachineVariables: FromReflect + TypePath,
Source§impl Reflect for AnimationStateMachinewhere
Self: Any + Send + Sync,
String: FromReflect + TypePath,
HashMap<String, AnimationState>: FromReflect + TypePath,
Vec<StateMachineTransition>: FromReflect + TypePath,
StateMachineVariables: FromReflect + TypePath,
impl Reflect for AnimationStateMachinewhere
Self: Any + Send + Sync,
String: FromReflect + TypePath,
HashMap<String, AnimationState>: FromReflect + TypePath,
Vec<StateMachineTransition>: FromReflect + TypePath,
StateMachineVariables: FromReflect + TypePath,
Source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Returns the value as a
&mut dyn Any
.Source§fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
Casts this type to a boxed reflected value.
Source§fn as_reflect(&self) -> &dyn Reflect
fn as_reflect(&self) -> &dyn Reflect
Casts this type to a reflected value.
Source§fn as_reflect_mut(&mut self) -> &mut dyn Reflect
fn as_reflect_mut(&mut self) -> &mut dyn Reflect
Casts this type to a mutable reflected value.
Source§fn clone_value(&self) -> Box<dyn Reflect>
fn clone_value(&self) -> Box<dyn Reflect>
Clones the value as a
Reflect
trait object. Read moreSource§fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
Performs a type-checked assignment of a reflected value to this value. Read more
Source§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
Returns a zero-sized enumeration of “kinds” of type. Read more
Source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
Returns an immutable enumeration of “kinds” of type. Read more
Source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
Returns a mutable enumeration of “kinds” of type. Read more
Source§fn reflect_owned(self: Box<Self>) -> ReflectOwned
fn reflect_owned(self: Box<Self>) -> ReflectOwned
Returns an owned enumeration of “kinds” of type. Read more
Source§fn reflect_partial_eq(&self, value: &dyn Reflect) -> Option<bool>
fn reflect_partial_eq(&self, value: &dyn Reflect) -> Option<bool>
Returns a “partial equality” comparison result. Read more
Source§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
Returns a hash of the value (which includes the type). Read more
Source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Debug formatter for the value. Read more
Source§fn serializable(&self) -> Option<Serializable<'_>>
fn serializable(&self) -> Option<Serializable<'_>>
Returns a serializable version of the value. Read more
Source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
Indicates whether or not this type is a dynamic type. Read more
Source§impl Struct for AnimationStateMachinewhere
Self: Any + Send + Sync,
String: FromReflect + TypePath,
HashMap<String, AnimationState>: FromReflect + TypePath,
Vec<StateMachineTransition>: FromReflect + TypePath,
StateMachineVariables: FromReflect + TypePath,
impl Struct for AnimationStateMachinewhere
Self: Any + Send + Sync,
String: FromReflect + TypePath,
HashMap<String, AnimationState>: FromReflect + TypePath,
Vec<StateMachineTransition>: FromReflect + TypePath,
StateMachineVariables: FromReflect + TypePath,
Source§fn field(&self, name: &str) -> Option<&dyn Reflect>
fn field(&self, name: &str) -> Option<&dyn Reflect>
Returns a reference to the value of the field named
name
as a &dyn Reflect
.Source§fn field_mut(&mut self, name: &str) -> Option<&mut dyn Reflect>
fn field_mut(&mut self, name: &str) -> Option<&mut dyn Reflect>
Returns a mutable reference to the value of the field named
name
as a
&mut dyn Reflect
.Source§fn field_at(&self, index: usize) -> Option<&dyn Reflect>
fn field_at(&self, index: usize) -> Option<&dyn Reflect>
Returns a reference to the value of the field with index
index
as a
&dyn Reflect
.Source§fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn Reflect>
fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn Reflect>
Returns a mutable reference to the value of the field with index
index
as a &mut dyn Reflect
.Source§fn name_at(&self, index: usize) -> Option<&str>
fn name_at(&self, index: usize) -> Option<&str>
Returns the name of the field with index
index
.Source§fn iter_fields(&self) -> FieldIter<'_>
fn iter_fields(&self) -> FieldIter<'_>
Returns an iterator over the values of the reflectable fields for this struct.
Source§fn clone_dynamic(&self) -> DynamicStruct
fn clone_dynamic(&self) -> DynamicStruct
Clones the struct into a
DynamicStruct
.Source§impl TypePath for AnimationStateMachine
impl TypePath for AnimationStateMachine
Source§fn type_path() -> &'static str
fn type_path() -> &'static str
Returns the fully qualified path of the underlying type. Read more
Source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
Returns a short, pretty-print enabled path to the type. Read more
Source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
Source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
Source§impl Typed for AnimationStateMachinewhere
Self: Any + Send + Sync,
String: FromReflect + TypePath,
HashMap<String, AnimationState>: FromReflect + TypePath,
Vec<StateMachineTransition>: FromReflect + TypePath,
StateMachineVariables: FromReflect + TypePath,
impl Typed for AnimationStateMachinewhere
Self: Any + Send + Sync,
String: FromReflect + TypePath,
HashMap<String, AnimationState>: FromReflect + TypePath,
Vec<StateMachineTransition>: FromReflect + TypePath,
StateMachineVariables: FromReflect + TypePath,
Auto Trait Implementations§
impl Freeze for AnimationStateMachine
impl !RefUnwindSafe for AnimationStateMachine
impl Send for AnimationStateMachine
impl Sync for AnimationStateMachine
impl Unpin for AnimationStateMachine
impl !UnwindSafe for AnimationStateMachine
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> 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> 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<C> Bundle for Cwhere
C: Component,
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) -> C
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
Source§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
fn get_components(self, func: &mut impl FnMut(StorageType, OwningPtr<'_>))
Source§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
Source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
See
TypePath::type_path
.Source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
Source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
See
TypePath::type_ident
.Source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
See
TypePath::crate_name
.Source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates
Self
using data from the given World
.Source§impl<S> GetField for Swhere
S: Struct,
impl<S> GetField for Swhere
S: Struct,
Source§impl<T> GetPath for T
impl<T> GetPath for T
Source§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>
Returns a reference to the value specified by
path
. Read moreSource§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>
Returns a mutable reference to the value specified by
path
. Read moreSource§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
Returns a statically typed reference to the value specified by
path
. Read moreSource§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
Returns a statically typed mutable reference to the value specified by
path
. Read more