mirror of
https://github.com/bevyengine/bevy
synced 2024-11-29 08:00:20 +00:00
Add method to check if all inputs are pressed (#11010)
# Objective - Provide way to check whether multiple inputs are pressed. ## Solution - Add `all_pressed` method that checks if all inputs are currently being pressed.
This commit is contained in:
parent
9a89fc44f4
commit
2c7eab1b4c
1 changed files with 18 additions and 0 deletions
|
@ -86,6 +86,11 @@ where
|
||||||
inputs.into_iter().any(|it| self.pressed(it))
|
inputs.into_iter().any(|it| self.pressed(it))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns `true` if all items in `inputs` have been pressed.
|
||||||
|
pub fn all_pressed(&self, inputs: impl IntoIterator<Item = T>) -> bool {
|
||||||
|
inputs.into_iter().all(|it| self.pressed(it))
|
||||||
|
}
|
||||||
|
|
||||||
/// Registers a release for the given `input`.
|
/// Registers a release for the given `input`.
|
||||||
pub fn release(&mut self, input: T) {
|
pub fn release(&mut self, input: T) {
|
||||||
// Returns `true` if the `input` was pressed.
|
// Returns `true` if the `input` was pressed.
|
||||||
|
@ -217,6 +222,19 @@ mod test {
|
||||||
assert!(input.any_pressed([DummyInput::Input1, DummyInput::Input2]));
|
assert!(input.any_pressed([DummyInput::Input1, DummyInput::Input2]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_all_pressed() {
|
||||||
|
let mut input = ButtonInput::default();
|
||||||
|
assert!(!input.all_pressed([DummyInput::Input1]));
|
||||||
|
assert!(!input.all_pressed([DummyInput::Input2]));
|
||||||
|
assert!(!input.all_pressed([DummyInput::Input1, DummyInput::Input2]));
|
||||||
|
input.press(DummyInput::Input1);
|
||||||
|
assert!(input.all_pressed([DummyInput::Input1]));
|
||||||
|
assert!(!input.all_pressed([DummyInput::Input1, DummyInput::Input2]));
|
||||||
|
input.press(DummyInput::Input2);
|
||||||
|
assert!(input.all_pressed([DummyInput::Input1, DummyInput::Input2]));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_release() {
|
fn test_release() {
|
||||||
let mut input = ButtonInput::default();
|
let mut input = ButtonInput::default();
|
||||||
|
|
Loading…
Reference in a new issue