diff --git a/src/input.rs b/src/input.rs index a363882..6455f6c 100644 --- a/src/input.rs +++ b/src/input.rs @@ -3,17 +3,20 @@ use shipyard::{AllStoragesView, Unique}; use hashbrown::HashMap; use nohash_hasher::BuildNoHashHasher; -#[repr(u8)] #[derive(Clone, Copy, Debug)] +#[repr(u8)] pub enum Action { Move(f32, f32), Look(f32, f32), } +pub type MouseCallback = fn(x: f32, y: f32) -> A; + #[derive(Unique)] pub struct InputSystem { pub keyboard_keymap: HashMap>, - mouse_map: Option A>, + mouse_map: Option>, + pub mouse_sensitivity: f32, keyboard_state: HashMap>, mouse_delta: (f32, f32), mouse_position: (f32, f32), @@ -23,12 +26,13 @@ impl InputSystem { Self { keyboard_keymap: HashMap::with_hasher(BuildNoHashHasher::default()), mouse_map: None, + mouse_sensitivity: 1., keyboard_state: HashMap::with_hasher(BuildNoHashHasher::default()), mouse_delta: (0., 0.), mouse_position: (0., 0.), } } - pub fn map_to_mouse(&mut self, function: fn(f32, f32) -> A) { + pub fn map_to_mouse(&mut self, function: MouseCallback) { self.mouse_map = Some(function); } }