From cf831d518539d8f51de3b5b756c996506af82e2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Mon, 4 Apr 2022 22:10:00 +0000 Subject: [PATCH] input clear should not clear pressed (#4418) # Objective - Revert #4410 - `Input.clear()` is the method call at the end of each frame for inputs. Clearing `pressed` in it mean that checking if a key is pressed will always return false --- crates/bevy_input/src/input.rs | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/crates/bevy_input/src/input.rs b/crates/bevy_input/src/input.rs index 34a80eb308b9d..8384cf5f270ba 100644 --- a/crates/bevy_input/src/input.rs +++ b/crates/bevy_input/src/input.rs @@ -116,11 +116,10 @@ where self.just_released.remove(&input); } - /// Clear pressed, just pressed and just released information. + /// Clear just pressed and just released information. pub fn clear(&mut self) { self.just_pressed.clear(); self.just_released.clear(); - self.pressed.clear(); } /// List all inputs that are pressed. @@ -167,23 +166,20 @@ mod test { assert!(input.pressed(DummyInput::Input1)); assert!(input.pressed(DummyInput::Input2)); - // Clear the `input`, removing pressed, just pressed and just released + // Clear the `input`, removing just pressed and just released input.clear(); + // After calling clear, inputs should still be pressed but not be just_pressed + // Check if they're marked "just pressed" assert!(!input.just_pressed(DummyInput::Input1)); assert!(!input.just_pressed(DummyInput::Input2)); // Check if they're marked as pressed - assert!(!input.pressed(DummyInput::Input1)); - assert!(!input.pressed(DummyInput::Input2)); - - // Test pressing - input.press(DummyInput::Input1); - input.press(DummyInput::Input2); + assert!(input.pressed(DummyInput::Input1)); + assert!(input.pressed(DummyInput::Input2)); // Release the inputs and check state - input.release(DummyInput::Input1); input.release(DummyInput::Input2);