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 each frame, read by fixed-step systems each tick. Edges (just_pressed/just_released) clear at the END of each tick (end_tick, registered last), so compose-fed events survive until the tick’s systems run. 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 end_tick(&mut self)

Edge rollover for the tick end: edges clear, levels persist. Frame-scope readers use clear_edges instead.

Source

pub fn clear_edges(&mut self)

Clear edges outside the schedule (after frame-scope consumption).

Source

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

Switch the active context set (phase gating, e.g. menu vs play). Empty set with contexts defined means only context-free actions fire. Pending edges drop only when the set actually changes: re-setting the same contexts every frame (the normal pump pattern) keeps them. Levels (pressed) always track hardware truthfully.

Source

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

Feed a keyboard chord press/release from the runner.

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 value for an axis (0.0 if never fed).

Source

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

Held (and live in the active context, not consumed).

Source

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

Started this tick (and live in the active context, not consumed).

Source

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

Released this tick.

Source

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

Swallow an action so later readers skip it (UI consumed the click). Returns true while the action is held.

Source

pub fn consume_all(&mut self)

Source

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

Drive an action without hardware (cutscenes, AI, tests).

Source

pub fn clear_consumed(&mut self)

Clear consumption (fresh frame handoff from UI).

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.