diff options
Diffstat (limited to 'engine/src/camera/fly.rs')
-rw-r--r-- | engine/src/camera/fly.rs | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/engine/src/camera/fly.rs b/engine/src/camera/fly.rs index 087f727..254d020 100644 --- a/engine/src/camera/fly.rs +++ b/engine/src/camera/fly.rs @@ -7,7 +7,7 @@ use ecs::{Component, Query}; use crate::camera::{Active as ActiveCamera, Camera}; use crate::delta_time::DeltaTime; use crate::input::{Cursor, CursorFlags, Key, KeyState, Keys}; -use crate::transform::Position; +use crate::transform::WorldPosition; use crate::util::builder; use crate::vector::{Vec2, Vec3}; @@ -75,7 +75,7 @@ pub struct Options } fn update( - camera_query: Query<(&mut Camera, &mut Position, &mut Fly, &ActiveCamera)>, + camera_query: Query<(&mut Camera, &mut WorldPosition, &mut Fly, &ActiveCamera)>, keys: Single<Keys>, cursor: Single<Cursor>, cursor_flags: Single<CursorFlags>, @@ -84,7 +84,7 @@ fn update( options: Local<Options>, ) { - for (mut camera, mut camera_pos, mut fly_camera, _) in &camera_query { + for (mut camera, mut camera_world_pos, mut fly_camera, _) in &camera_query { if cursor.has_moved && cursor_flags.is_first_move.flag { tracing::debug!("First cursor move"); @@ -122,29 +122,30 @@ fn update( camera.global_up = cam_right.cross(&direction).normalize(); if keys.get_key_state(Key::W) == KeyState::Pressed { - camera_pos.position += + camera_world_pos.position += direction * fly_camera.speed * delta_time.as_secs_f32(); } if keys.get_key_state(Key::S) == KeyState::Pressed { - camera_pos.position -= + camera_world_pos.position -= direction * fly_camera.speed * delta_time.as_secs_f32(); } if keys.get_key_state(Key::A) == KeyState::Pressed { let cam_left = -direction.cross(&Vec3::UP).normalize(); - camera_pos.position += cam_left * fly_camera.speed * delta_time.as_secs_f32(); + camera_world_pos.position += + cam_left * fly_camera.speed * delta_time.as_secs_f32(); } if keys.get_key_state(Key::D) == KeyState::Pressed { let cam_right = direction.cross(&Vec3::UP).normalize(); - camera_pos.position += + camera_world_pos.position += cam_right * fly_camera.speed * delta_time.as_secs_f32(); } - camera.target = camera_pos.position + direction; + camera.target = camera_world_pos.position + direction; } } |