From 3eb02cbe5b106cd332f25d658430f7e0ae320745 Mon Sep 17 00:00:00 2001 From: Mica White Date: Sun, 28 Jun 2026 11:09:28 -0400 Subject: initial commit --- src/input.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/input.rs (limited to 'src/input.rs') diff --git a/src/input.rs b/src/input.rs new file mode 100644 index 0000000..c86daf4 --- /dev/null +++ b/src/input.rs @@ -0,0 +1,27 @@ +use crossterm::event::KeyCode; +use rustc_hash::FxHashSet; + +#[derive(Debug, Default, Clone)] +pub struct InputManager { + pressed_keys: FxHashSet, +} + +impl InputManager { + pub fn new() -> Self { + Self { + pressed_keys: FxHashSet::default(), + } + } + + pub fn press_key(&mut self, key_code: KeyCode) { + self.pressed_keys.insert(key_code); + } + + pub fn reset_next_frame(&mut self) { + self.pressed_keys.clear(); + } + + pub fn is_key_pressed_this_frame(&self, key_code: KeyCode) -> bool { + self.pressed_keys.contains(&key_code) + } +} -- cgit v1.2.3