diff --git a/examples/testbed/src/free_fly_camera.rs b/examples/testbed/src/free_fly_camera.rs index dd6b4c2..d92bf64 100644 --- a/examples/testbed/src/free_fly_camera.rs +++ b/examples/testbed/src/free_fly_camera.rs @@ -1,10 +1,10 @@ -use std::{ops::Deref, ptr::NonNull}; +use std::ptr::NonNull; use lyra_engine::{ game::Game, - input::{InputButtons, KeyCode, MouseMotion, ActionHandler}, + input::ActionHandler, math::{Quat, Vec3, EulerRot}, - plugin::Plugin, ecs::{system::{System, IntoSystem}, world::World, Access, Component}, DeltaTime, EventQueue, scene::CameraComponent, + plugin::Plugin, ecs::{system::{System, IntoSystem}, world::World, Access, Component}, DeltaTime, scene::CameraComponent, }; #[derive(Clone, Component)] @@ -46,48 +46,9 @@ pub struct FreeFlyCameraPlugin; impl System for FreeFlyCameraPlugin { fn execute(&mut self, mut world: NonNull) -> anyhow::Result<()> { let world = unsafe { world.as_mut() }; - let mut camera_rot = Vec3::default(); - let delta_time = **world.get_resource::(); - let handler = world.get_resource::(); - /* if let Some(look_x) = handler.get_axis_modifier("look_left_right") { - camera_rot.x += look_x; - } - - if let Some(look_y) = handler.get_axis_modifier("look_up_down") { - camera_rot.y += look_y; - } */ - - - - /* if let Some(keys) = keys.as_ref() { - if keys.is_pressed(KeyCode::Left) { - camera_rot.y += 1.0; - } - - if keys.is_pressed(KeyCode::Right) { - camera_rot.y -= 1.0; - } - - if keys.is_pressed(KeyCode::Up) { - camera_rot.x += 1.0; - } - - if keys.is_pressed(KeyCode::Down) { - camera_rot.x -= 1.0; - } - - if keys.is_pressed(KeyCode::E) { - camera_rot.z -= 1.0; - } - - if keys.is_pressed(KeyCode::Q) { - camera_rot.z += 1.0; - } - } */ - for (mut cam, fly) in world .view_iter::<(&mut CameraComponent, &FreeFlyCamera)>() { @@ -95,42 +56,11 @@ impl System for FreeFlyCameraPlugin { let left = cam.transform.left(); let up = Vec3::Y; - // handle camera movement - /* if let Some(keys) = keys.as_ref() { - let mut velocity = Vec3::ZERO; - - if let Some(m) = handler.get_pressed_modifier("forward_backward") { - velocity += m * forward; - } - - if let Some(m) = handler.get_pressed_modifier("left_right") { - velocity += m * left; - } - - if keys.is_pressed(KeyCode::C) { - velocity += up; - } - - if keys.is_pressed(KeyCode::Z) { - velocity -= up; - } - - if velocity != Vec3::ZERO { - let temp = if keys.is_pressed(KeyCode::E) { - fly.speed * delta_time * fly.slow_speed_factor - } else { - fly.speed * delta_time - }; - - cam.transform.translation += velocity.normalize() * temp; - } - } */ - - let mut velocity = Vec3::ZERO; - let move_y = handler.get_axis_modifier("up_down").unwrap_or(0.0); let move_x = handler.get_axis_modifier("left_right").unwrap_or(0.0); let move_z = handler.get_axis_modifier("forward_backward").unwrap_or(0.0); + + let mut velocity = Vec3::ZERO; velocity += move_y * up; velocity += move_x * left; velocity += move_z * forward; @@ -139,18 +69,13 @@ impl System for FreeFlyCameraPlugin { cam.transform.translation += velocity.normalize() * fly.speed * delta_time; // TODO: speeding up } - // handle camera rotation - /* if let Some(mut events) = events.clone() { - while let Some(motion) = events.pop_front() { - camera_rot.x -= motion.delta.y * fly.mouse_sensitivity; - camera_rot.y -= motion.delta.x * fly.mouse_sensitivity; - } - } */ - let motion_x = handler.get_axis_modifier("look_left_right").unwrap_or(0.0); let motion_y = handler.get_axis_modifier("look_up_down").unwrap_or(0.0); + let motion_z = handler.get_axis_modifier("look_rotate").unwrap_or(0.0); + let mut camera_rot = Vec3::ZERO; camera_rot.y -= motion_x * fly.mouse_sensitivity; camera_rot.x -= motion_y * fly.mouse_sensitivity; + camera_rot.z -= motion_z * fly.mouse_sensitivity; if camera_rot != Vec3::ZERO { let look_velocity = camera_rot * fly.look_speed * delta_time;