Struct leafwing_input_manager::input_streams::InputStreams
source · [−]pub struct InputStreams<'a> {
pub gamepad_buttons: &'a Input<GamepadButton>,
pub gamepad_button_axes: &'a Axis<GamepadButton>,
pub gamepad_axes: &'a Axis<GamepadAxis>,
pub gamepads: &'a Gamepads,
pub keycode: &'a Input<KeyCode>,
pub mouse_button: &'a Input<MouseButton>,
pub mouse_wheel: &'a Events<MouseWheel>,
pub mouse_motion: &'a Events<MouseMotion>,
pub associated_gamepad: Option<Gamepad>,
}Expand description
Fields
A [GamepadButton] [Input] stream
A [GamepadButton] [Axis] stream
gamepad_axes: &'a Axis<GamepadAxis>A [GamepadAxis] [Axis] stream
gamepads: &'a GamepadsA list of registered gamepads
keycode: &'a Input<KeyCode>A [KeyCode] [Input] stream
A [MouseButton] [Input] stream
mouse_wheel: &'a Events<MouseWheel>A [MouseWheel] event stream
mouse_motion: &'a Events<MouseMotion>A [MouseMotion] event stream
associated_gamepad: Option<Gamepad>The [Gamepad] that this struct will detect inputs from
Implementations
sourceimpl<'a> InputStreams<'a>
impl<'a> InputStreams<'a>
sourcepub fn from_world(world: &'a World, gamepad: Option<Gamepad>) -> Self
pub fn from_world(world: &'a World, gamepad: Option<Gamepad>) -> Self
Construct an InputStreams from a [World]
sourceimpl<'a> InputStreams<'a>
impl<'a> InputStreams<'a>
sourcepub fn guess_gamepad(&self) -> Option<Gamepad>
pub fn guess_gamepad(&self) -> Option<Gamepad>
Guess which registered [Gamepad] should be used.
If an associated gamepad is set, use that. Otherwise use the first registered gamepad, if any.
sourcepub fn input_pressed(&self, input: &UserInput) -> bool
pub fn input_pressed(&self, input: &UserInput) -> bool
Is the input matched by the InputStreams?
sourcepub fn any_pressed(&self, inputs: &PetitSet<UserInput, 16>) -> bool
pub fn any_pressed(&self, inputs: &PetitSet<UserInput, 16>) -> bool
Is at least one of the inputs pressed?
Is the button pressed?
Are all of the buttons pressed?
sourcepub fn input_value(&self, input: &UserInput) -> f32
pub fn input_value(&self, input: &UserInput) -> f32
Get the “value” of the input.
For binary inputs such as buttons, this will always be either 0.0 or 1.0. For analog
inputs such as axes, this will be the axis value.
UserInput::Chord inputs are also considered binary and will return 0.0 or 1.0 based
on whether the chord has been pressed.
Warning
If you need to ensure that this value is always in the range [-1., 1.],
be sure to clamp the reutrned data.
sourcepub fn input_axis_pair(&self, input: &UserInput) -> Option<DualAxisData>
pub fn input_axis_pair(&self, input: &UserInput) -> Option<DualAxisData>
Get the axis pair associated to the user input.
If input is not a DualAxis or VirtualDPad, returns None.
See ActionState::action_axis_pair() for usage.
Warning
If you need to ensure that this value is always in the range [-1., 1.],
be sure to clamp the returned data.
Trait Implementations
sourceimpl<'a> Clone for InputStreams<'a>
impl<'a> Clone for InputStreams<'a>
sourcefn clone(&self) -> InputStreams<'a>
fn clone(&self) -> InputStreams<'a>
1.0.0 · sourceconst fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source. Read moresourceimpl<'a> Debug for InputStreams<'a>
impl<'a> Debug for InputStreams<'a>
sourceimpl<'a> From<&'a MutableInputStreams<'a>> for InputStreams<'a>
impl<'a> From<&'a MutableInputStreams<'a>> for InputStreams<'a>
sourcefn from(mutable_streams: &'a MutableInputStreams<'a>) -> Self
fn from(mutable_streams: &'a MutableInputStreams<'a>) -> Self
sourceimpl<'a> From<MutableInputStreams<'a>> for InputStreams<'a>
impl<'a> From<MutableInputStreams<'a>> for InputStreams<'a>
sourcefn from(mutable_streams: MutableInputStreams<'a>) -> Self
fn from(mutable_streams: MutableInputStreams<'a>) -> Self
Auto Trait Implementations
impl<'a> RefUnwindSafe for InputStreams<'a>
impl<'a> Send for InputStreams<'a>
impl<'a> Sync for InputStreams<'a>
impl<'a> Unpin for InputStreams<'a>
impl<'a> UnwindSafe for InputStreams<'a>
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: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
T [ShaderType] for self. When used in [AsBindGroup]
derives, it is safe to assume that all images in self exist. Read moresourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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. Read morefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read morefn 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. Read morefn 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. Read more