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>
impl<A: ActionLike> ActionState<A>
pub fn new(map: ActionMap<A>) -> Self
pub fn map(&self) -> &ActionMap<A>
pub fn replace_map(&mut self, map: ActionMap<A>)
Sourcepub fn clear_edges(&mut self)
pub fn clear_edges(&mut self)
Clear edges outside the schedule.
Sourcepub fn set_contexts(&mut self, contexts: &[&str])
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.
Sourcepub fn physical(&mut self, key: PhysicalKey, down: bool)
pub fn physical(&mut self, key: PhysicalKey, down: bool)
Feed a physical key position press/release.
Sourcepub fn mouse(&mut self, button: PointerButton, down: bool)
pub fn mouse(&mut self, button: PointerButton, down: bool)
Feed a mouse button press/release.
Sourcepub fn pad(&mut self, button: GamepadButton, down: bool)
pub fn pad(&mut self, button: GamepadButton, down: bool)
Feed a gamepad button press/release.
Sourcepub fn axis(&mut self, axis: GamepadAxis, value: f32)
pub fn axis(&mut self, axis: GamepadAxis, value: f32)
Feed an axis value; threshold bindings flip on crossing.
Sourcepub fn axis_value(&self, axis: GamepadAxis) -> f32
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.
Sourcepub fn strength(&self, action: &A) -> f32
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.
Sourcepub fn vector(
&self,
neg_x: &A,
pos_x: &A,
neg_y: &A,
pos_y: &A,
deadzone: f32,
) -> (f32, f32)
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).
Sourcepub fn pressed(&self, action: &A) -> bool
pub fn pressed(&self, action: &A) -> bool
Held, live, and not consumed. True each tick a binding is down.
Sourcepub fn just_pressed(&self, action: &A) -> bool
pub fn just_pressed(&self, action: &A) -> bool
Started this tick. Edge set on press, cleared at end_tick.
Sourcepub fn just_released(&self, action: &A) -> bool
pub fn just_released(&self, action: &A) -> bool
Released this tick. Clears at end_tick like just_pressed.
Sourcepub fn consume(&mut self, action: &A) -> bool
pub fn consume(&mut self, action: &A) -> bool
Mark consumed so later readers skip it. Returns true while held.
Sourcepub fn take_just_pressed(&mut self, action: &A) -> bool
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.
Sourcepub fn take_just_released(&mut self, action: &A) -> bool
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.
pub fn consume_all(&mut self)
Sourcepub fn clear_consumed(&mut self)
pub fn clear_consumed(&mut self)
Clear consumption.
Trait Implementations§
Source§impl<A: ActionLike> Component for ActionState<A>
impl<A: ActionLike> Component for ActionState<A>
Source§const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet
const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet
Source§type Mutability = Mutable
type Mutability = Mutable
Component<Mutability = Mutable>,
while immutable components will instead have Component<Mutability = Immutable>. Read moreSource§fn register_required_components(
_requiree: ComponentId,
required_components: &mut RequiredComponentsRegistrator<'_, '_>,
)
fn register_required_components( _requiree: ComponentId, required_components: &mut RequiredComponentsRegistrator<'_, '_>, )
Source§fn clone_behavior() -> ComponentCloneBehavior
fn clone_behavior() -> ComponentCloneBehavior
Source§fn relationship_accessor() -> Option<ComponentRelationshipAccessor<Self>>
fn relationship_accessor() -> Option<ComponentRelationshipAccessor<Self>>
ComponentRelationshipAccessor required for working with relationships in dynamic contexts. Read moreSource§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
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 moreSource§impl<A: Debug + ActionLike> Debug for ActionState<A>
impl<A: Debug + ActionLike> Debug for ActionState<A>
impl<A: ActionLike> Resource for ActionState<A>
Auto Trait Implementations§
impl<A> Freeze for ActionState<A>
impl<A> RefUnwindSafe for ActionState<A>
impl<A> Send for ActionState<A>
impl<A> Sync for ActionState<A>
impl<A> Unpin for ActionState<A>
impl<A> UnsafeUnpin for ActionState<A>
impl<A> UnwindSafe for ActionState<A>
Blanket Implementations§
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
Source§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut ComponentsRegistrator<'_>, ) -> impl Iterator<Item = ComponentId> + use<C>
Source§fn get_component_ids(
components: &Components,
) -> impl Iterator<Item = Option<ComponentId>>
fn get_component_ids( components: &Components, ) -> impl Iterator<Item = Option<ComponentId>>
Source§impl<C> BundleFromComponents for Cwhere
C: Component,
impl<C> BundleFromComponents for Cwhere
C: Component,
impl<T> ConditionalSend for Twhere
T: Send,
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>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.