use crate::prelude::*;
#[derive(HasSchema, Clone, Debug, Default)]
pub struct MouseInputs {
pub movement: Vec2,
pub wheel_events: Vec<MouseScrollEvent>,
pub button_events: Vec<MouseButtonEvent>,
}
#[derive(Debug, Clone, Copy)]
pub struct MouseScrollEvent {
pub unit: MouseScrollUnit,
pub movement: Vec2,
}
#[derive(Debug, Clone, Copy)]
#[repr(u8)]
pub enum MouseScrollUnit {
Lines,
Pixels,
}
#[derive(Debug, Clone, Copy)]
pub struct MouseButtonEvent {
pub button: MouseButton,
pub state: ButtonState,
}
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(u8)]
pub enum MouseButton {
#[default]
Left,
Right,
Middle,
Other(u16),
}