use std::collections::BTreeSet;
use crate::Vec2;
#[derive(Default)]
pub struct InputManager {
keyboard_states: BTreeSet<u8>,
pub mouse_position: Vec2,
}
impl InputManager {
pub fn new() -> Self {
Default::default()
}
pub fn key_down(&mut self, key_code: u8) {
self.keyboard_states.insert(key_code);
}
pub fn key_up(&mut self, key_code: u8) {
self.keyboard_states.remove(&key_code);
}
pub fn get_key_state(&self, key_code: u8) -> bool {
self.keyboard_states.contains(&key_code)
}
pub fn set_mouse_position(&mut self, x: f32, y: f32) {
self.mouse_position.x = x;
self.mouse_position.y = y;
}
}