use super::*;
#[derive(Clone, Copy, Data, Debug, Default, Eq, Hash, New, Ord, PartialEq, PartialOrd)]
pub struct Input;
#[derive(Clone, Data, Debug, New, PartialEq)]
pub struct InputState {
#[get_mut(pub(crate))]
#[set(pub(crate))]
#[new(skip)]
pub keys_pressed: KeyStateSet,
#[get_mut(pub(crate))]
#[set(pub(crate))]
#[new(skip)]
pub keys_held: KeyStateSet,
#[get_mut(pub(crate))]
#[set(pub(crate))]
#[new(skip)]
pub keys_released: KeyStateSet,
#[get_mut(pub(crate))]
#[set(pub(crate))]
#[new(skip)]
pub mouse_buttons_pressed: HashSet<MouseButton>,
#[get_mut(pub(crate))]
#[set(pub(crate))]
#[new(skip)]
pub mouse_buttons_held: HashSet<MouseButton>,
#[get_mut(pub(crate))]
#[set(pub(crate))]
#[new(skip)]
pub mouse_buttons_released: HashSet<MouseButton>,
#[get_mut(pub(crate))]
#[get(type(copy))]
#[set(pub(crate))]
#[new(skip)]
pub mouse_position: Vector2D,
#[get_mut(pub(crate))]
#[get(type(copy))]
#[set(pub(crate))]
#[new(skip)]
pub mouse_delta: Vector2D,
#[get_mut(pub(crate))]
#[get(type(copy))]
#[set(pub(crate))]
#[new(skip)]
pub mouse_moved: bool,
#[get_mut(pub(crate))]
#[set(pub(crate))]
#[new(skip)]
pub touch_points: TouchPointMap,
#[get_mut(pub(crate))]
#[set(pub(crate))]
#[new(skip)]
pub touch_started: HashSet<i32>,
#[get_mut(pub(crate))]
#[set(pub(crate))]
#[new(skip)]
pub touch_ended: HashSet<i32>,
}
#[derive(Clone, Data, Debug, Default, PartialEq)]
pub struct GamepadState {
#[get(pub(crate), type(clone))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) id: String,
#[get_mut(pub(crate))]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) axes: Vec<f64>,
#[get_mut(pub(crate))]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) button_values: Vec<f64>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) connected: bool,
#[get_mut(pub(crate))]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) buttons_pressed: GamepadButtonSet,
#[get_mut(pub(crate))]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) buttons_held: GamepadButtonSet,
#[get_mut(pub(crate))]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) buttons_released: GamepadButtonSet,
}
#[derive(Clone, Data, Debug, Default, PartialEq)]
pub struct GamepadManager {
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub states: GamepadStateMap,
#[get_mut(pub(crate))]
#[set(pub(crate))]
#[get(pub(crate))]
pub(crate) connected: GamepadIndexSet,
#[get_mut(pub(crate))]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) disconnected: GamepadIndexSet,
}