Free fly camera code cleanup
This commit is contained in:
parent
22b582c3f8
commit
265752ee76
|
@ -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<World>) -> anyhow::Result<()> {
|
||||
let world = unsafe { world.as_mut() };
|
||||
let mut camera_rot = Vec3::default();
|
||||
|
||||
let delta_time = **world.get_resource::<DeltaTime>();
|
||||
|
||||
let handler = world.get_resource::<ActionHandler>();
|
||||
|
||||
/* 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;
|
||||
|
|
Loading…
Reference in New Issue