You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.3 KiB
75 lines
2.3 KiB
//! Advanced input handler
|
|
|
|
mod arbiter;
|
|
pub use arbiter::*;
|
|
mod traits;
|
|
pub use traits::*;
|
|
|
|
|
|
// use crate::{graphics::Vector2, viewport::Viewport};
|
|
// use ggez::{
|
|
// event::EventHandler,
|
|
// input::mouse::{self, MouseButton},
|
|
// Context, GameResult,
|
|
// };
|
|
|
|
// pub struct InputHandle {
|
|
// /// The mouse position on the viewport
|
|
// pub mouse_pos: Vector2,
|
|
// /// Whether the left mouse button is pressed this frame
|
|
// pub left_pressed: bool,
|
|
// /// Whether the middle mouse button is pressed this frame
|
|
// pub middle_pressed: bool,
|
|
// /// Whether the right mouse button is pressed this frame
|
|
// pub right_pressed: bool,
|
|
// /// Set when pressing left mouse and unset when releasing it
|
|
// pub drag_point: Option<Vector2>,
|
|
// /// Get the scroll-wheel position this frame
|
|
// pub scroll_offset: f32,
|
|
// }
|
|
|
|
// impl InputHandle {
|
|
// pub fn new() -> Self {
|
|
// Self {
|
|
// mouse_pos: Vector2::new(0.0, 0.0),
|
|
// left_pressed: false,
|
|
// middle_pressed: false,
|
|
// right_pressed: false,
|
|
// drag_point: None,
|
|
// scroll_offset: 1.0,
|
|
// }
|
|
// }
|
|
|
|
// /// Get the unprojected mouse coordinates
|
|
// pub fn unproject(&self, vp: &Viewport) -> Vector2 {
|
|
// // self.mouse_pos.clone() - vp.start().clone()
|
|
|
|
// todo!()
|
|
// }
|
|
// }
|
|
|
|
// impl EventHandler for InputHandle {
|
|
// fn update(&mut self, ctx: &mut Context) -> GameResult<()> {
|
|
// self.mouse_pos = mouse::position(&ctx).into();
|
|
// self.left_pressed = mouse::button_pressed(ctx, MouseButton::Left);
|
|
// self.middle_pressed = mouse::button_pressed(ctx, MouseButton::Middle);
|
|
// self.right_pressed = mouse::button_pressed(ctx, MouseButton::Right);
|
|
|
|
// // Only set the drag_point once and unset when we release Left button
|
|
// if self.middle_pressed && self.drag_point.is_none() {
|
|
// self.drag_point = Some(self.mouse_pos.clone());
|
|
// } else if !self.middle_pressed {
|
|
// self.drag_point = None;
|
|
// }
|
|
|
|
// Ok(())
|
|
// }
|
|
|
|
// fn mouse_wheel_event(&mut self, _ctx: &mut Context, _: f32, y: f32) {
|
|
// self.scroll_offset -= y * 0.25;
|
|
// }
|
|
|
|
// fn draw(&mut self, _: &mut Context) -> GameResult<()> {
|
|
// panic!("Don't draw the input handle!");
|
|
// }
|
|
// }
|
|
|