Skip to main content

ActionState

Struct ActionState 

Source
pub struct ActionState<A: ActionLike> { /* private fields */ }
Expand description

Sim-side gameplay input fed from repose events, read per tick. Edges clear at tick end via end_tick (registered last). Frame-scope readers call clear_edges after consuming.

Implementations§

Source§

impl<A: ActionLike> ActionState<A>

Source

pub fn new(map: ActionMap<A>) -> Self

Source

pub fn map(&self) -> &ActionMap<A>

Source

pub fn replace_map(&mut self, map: ActionMap<A>)

Source

pub fn end_tick(&mut self)

Edge rollover for tick end: edges clear, levels persist.

Source

pub fn clear_edges(&mut self)

Clear edges outside the schedule.

Source

pub fn set_contexts(&mut self, contexts: &[&str])

Switch the active context set. Pending edges drop on change; re-setting the same set keeps them. Levels track hardware.

Source

pub fn key(&mut self, chord: &KeyChord, down: bool)

Feed a keyboard chord press/release.

Source

pub fn physical(&mut self, key: PhysicalKey, down: bool)

Feed a physical key position press/release.

Source

pub fn mouse(&mut self, button: PointerButton, down: bool)

Feed a mouse button press/release.

Source

pub fn pad(&mut self, button: GamepadButton, down: bool)

Feed a gamepad button press/release.

Source

pub fn axis(&mut self, axis: GamepadAxis, value: f32)

Feed an axis value; threshold bindings flip on crossing.

Source

pub fn axis_value(&self, axis: GamepadAxis) -> f32

Latest raw value fed for an axis (0.0 if not fed).

Raw deflection in -1..1 (sticks) or 0..1 (triggers), no threshold applied.

Source

pub fn strength(&self, action: &A) -> f32

Intensity from 0.0 (inactive) to 1.0 (held). Buttons read 0/1; axes remap threshold..1 to 0..1. Strongest binding wins. Gated or consumed actions read 0.0.

Source

pub fn vector( &self, neg_x: &A, pos_x: &A, neg_y: &A, pos_y: &A, deadzone: f32, ) -> (f32, f32)

Movement vector from four actions. Lengths below deadzone snap to zero; lengths above 1 normalize back. y is screen convention (down-positive).

Source

pub fn pressed(&self, action: &A) -> bool

Held, live, and not consumed. True each tick a binding is down.

Source

pub fn just_pressed(&self, action: &A) -> bool

Started this tick. Edge set on press, cleared at end_tick.

Source

pub fn just_released(&self, action: &A) -> bool

Released this tick. Clears at end_tick like just_pressed.

Source

pub fn consume(&mut self, action: &A) -> bool

Mark consumed so later readers skip it. Returns true while held.

Source

pub fn take_just_pressed(&mut self, action: &A) -> bool

Take a press edge once: first caller per tick gets true, later callers get false. Held state is untouched, so pressed() keeps reading true while the binding is down. Edges clear in end_tick like just_pressed.

Source

pub fn take_just_released(&mut self, action: &A) -> bool

Take a release edge once: first caller per tick gets true, later callers get false. Clears in end_tick like just_released.

Source

pub fn consume_all(&mut self)

Source

pub fn mock(&mut self, action: &A, down: bool)

Drive an action without hardware.

Source

pub fn clear_consumed(&mut self)

Clear consumption.

Trait Implementations§

Source§

impl<A: ActionLike> Component for ActionState<A>
where Self: Send + Sync + 'static,

Source§

const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet

A constant indicating the storage type used for this component.
Source§

type Mutability = Mutable

A marker type to assist Bevy with determining if this component is mutable, or immutable. Mutable components will have Component<Mutability = Mutable>, while immutable components will instead have Component<Mutability = Immutable>. Read more
Source§

fn register_required_components( _requiree: ComponentId, required_components: &mut RequiredComponentsRegistrator<'_, '_>, )

Registers required components. Read more
Source§

fn clone_behavior() -> ComponentCloneBehavior

Called when registering this component, allowing to override clone function (or disable cloning altogether) for this component. Read more
Source§

fn relationship_accessor() -> Option<ComponentRelationshipAccessor<Self>>

Returns ComponentRelationshipAccessor required for working with relationships in dynamic contexts. Read more
Source§

fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_add ComponentHook for this Component if one is defined.
Source§

fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_insert ComponentHook for this Component if one is defined.
Source§

fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_discard ComponentHook for this Component if one is defined.
Source§

fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_remove ComponentHook for this Component if one is defined.
Source§

fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_despawn ComponentHook for this Component if one is defined.
Source§

fn map_entities<E>(_this: &mut Self, _mapper: &mut E)
where E: EntityMapper,

Maps the entities on this component using the given EntityMapper. This is used to remap entities in contexts like scenes and entity cloning. When deriving Component, this is populated by annotating fields containing entities with #[entities] Read more
Source§

impl<A: Debug + ActionLike> Debug for ActionState<A>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<A: ActionLike> Resource for ActionState<A>
where Self: Send + Sync + 'static,

Auto Trait Implementations§

§

impl<A> Freeze for ActionState<A>
where ActionMap<A>: Freeze, HashSet<A>: Freeze,

§

impl<A> RefUnwindSafe for ActionState<A>

§

impl<A> Send for ActionState<A>
where ActionMap<A>: Send, HashSet<A>: Send,

§

impl<A> Sync for ActionState<A>
where ActionMap<A>: Sync, HashSet<A>: Sync,

§

impl<A> Unpin for ActionState<A>
where ActionMap<A>: Unpin, HashSet<A>: Unpin,

§

impl<A> UnsafeUnpin for ActionState<A>

§

impl<A> UnwindSafe for ActionState<A>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<C> Bundle for C
where C: Component,

Source§

fn component_ids( components: &mut ComponentsRegistrator<'_>, ) -> impl Iterator<Item = ComponentId> + use<C>

Source§

fn get_component_ids( components: &Components, ) -> impl Iterator<Item = Option<ComponentId>>

Return a iterator over this Bundle’s component ids. This will be None if the component has not been registered.
Source§

impl<C> BundleFromComponents for C
where C: Component,

Source§

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

Source§

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &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)

Converts &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> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<C> DynamicBundle for C
where C: Component,

Source§

type Effect = ()

An operation on the entity that happens after inserting this bundle.
Source§

unsafe fn get_components( ptr: MovingPtr<'_, C>, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect

Moves the components out of the bundle. Read more
Source§

unsafe fn apply_effect( _ptr: MovingPtr<'_, MaybeUninit<C>>, _entity: &mut EntityWorldMut<'_>, )

Applies the after-effects of spawning this bundle. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

impl<T> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
Source§

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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.