pub struct ActionStateDriver<A: Actionlike> {
    pub action: A,
    pub targets: ActionStateDriverTarget,
}Expand description
A component that allows the attached entity to drive the ActionState of the associated entity
Examples
By default, update_action_state_from_interaction uses this component
in order to connect bevy::ui buttons to the corresponding ActionState.
use bevy::prelude::*;
use leafwing_input_manager::prelude::*;
#[derive(Actionlike, Clone, Copy, Reflect)]
enum DanceDance {
    Left,
    Right,
    Up,
    Down,
}
// Spawn entity to track dance inputs
let mut world = World::new();
let dance_tracker = world
    .spawn(ActionState::<DanceDance>::default())
    .id();
// Spawn a button, which is wired up to the dance tracker
// When used with InputManagerPlugin<DanceDance>, this button will press the DanceDance::Left action when it is pressed.
world
    .spawn(ButtonBundle::default())
    // This component links the button to the entity with the `ActionState` component
    .insert(ActionStateDriver {
        action: DanceDance::Left,
        targets: dance_tracker.into(),
    });Writing your own systems that use the ActionStateDriver component is easy,
although this should be reserved for cases where the entity whose value you want to check
is distinct from the entity whose ActionState you want to set.
Check the source code of update_action_state_from_interaction for an example of how this is done.
Fields§
§action: AThe action triggered by this entity
targets: ActionStateDriverTargetThe entity whose action state should be updated
Trait Implementations§
source§impl<A: Clone + Actionlike> Clone for ActionStateDriver<A>
 
impl<A: Clone + Actionlike> Clone for ActionStateDriver<A>
source§fn clone(&self) -> ActionStateDriver<A>
 
fn clone(&self) -> ActionStateDriver<A>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moresource§impl<A: Actionlike> Component for ActionStateDriver<A>where
    Self: Send + Sync + 'static,
 
impl<A: Actionlike> Component for ActionStateDriver<A>where Self: Send + Sync + 'static,
source§impl<A: PartialEq + Actionlike> PartialEq<ActionStateDriver<A>> for ActionStateDriver<A>
 
impl<A: PartialEq + Actionlike> PartialEq<ActionStateDriver<A>> for ActionStateDriver<A>
source§fn eq(&self, other: &ActionStateDriver<A>) -> bool
 
fn eq(&self, other: &ActionStateDriver<A>) -> bool
This method tests for 
self and other values to be equal, and is used
by ==.impl<A: Eq + Actionlike> Eq for ActionStateDriver<A>
impl<A: Actionlike> StructuralEq for ActionStateDriver<A>
impl<A: Actionlike> StructuralPartialEq for ActionStateDriver<A>
Auto Trait Implementations§
impl<A> RefUnwindSafe for ActionStateDriver<A>where A: RefUnwindSafe,
impl<A> Send for ActionStateDriver<A>
impl<A> Sync for ActionStateDriver<A>
impl<A> Unpin for ActionStateDriver<A>where A: Unpin,
impl<A> UnwindSafe for ActionStateDriver<A>where A: UnwindSafe,
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for Twhere
    U: ShaderType,
    &'a T: for<'a> Into<U>,
 
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
 
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
§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) -> Cwhere F: for<'a> FnMut(&'a mut T) -> OwningPtr<'a, Aligned>,
§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
 
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
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>
 
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)
 
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)
 
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<C> DynamicBundle for Cwhere
    C: Component,
 
impl<C> DynamicBundle for Cwhere C: Component,
fn get_components( self, func: &mut impl FnMut(StorageType, OwningPtr<'_, Aligned>) )
§impl<Q, K> Equivalent<K> for Qwhere
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized,
 
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
source§impl<Q, K> Equivalent<K> for Qwhere
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized,
 
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
Compare self to 
key and return true if they are equal.