From 357315631638ca34050fcc6a8a91b6417a7442b0 Mon Sep 17 00:00:00 2001 From: Franklin Blanco Date: Sun, 17 Sep 2023 18:18:15 -0700 Subject: [PATCH] Added translation to leaning --- src/logic/core/player/camera_player_sync.rs | 10 ++++++++++ src/logic/core/player/hands.rs | 3 +-- src/scenes/scene1/init.rs | 2 -- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/logic/core/player/camera_player_sync.rs b/src/logic/core/player/camera_player_sync.rs index 7da1009..fa5a2c5 100644 --- a/src/logic/core/player/camera_player_sync.rs +++ b/src/logic/core/player/camera_player_sync.rs @@ -116,22 +116,32 @@ pub fn follow_cursor_with_camera( Quat::from_axis_angle(Vec3::Y, yaw) * Quat::from_axis_angle(Vec3::X, pitch); for mut camera_transform in camera_query.iter_mut() { + let local_z = camera_transform.local_z(); + let right = Vec3::new(local_z.z * 0.5, camera_transform.translation.y, -local_z.x * 0.5); player_transform.rotation = desired_rotation_quat; if keyboard_input.pressed(KeyCode::Q) { let final_quat = Quat::from_axis_angle(Vec3::Z, radians_from_degrees(30.0)); camera_transform.rotation = camera_transform .rotation .lerp(final_quat, time.delta_seconds() / 0.2); + camera_transform.translation = camera_transform.translation.lerp(Vec3 { x: -right.x, y: camera_transform.translation.y, z: -right.z }, time.delta_seconds() / 0.2); } else if keyboard_input.pressed(KeyCode::E) { let final_quat = Quat::from_axis_angle(Vec3::Z, radians_from_degrees(-30.0)); camera_transform.rotation = camera_transform .rotation .lerp(final_quat, time.delta_seconds() / 0.2); + camera_transform.translation = camera_transform.translation.lerp(Vec3 { x: right.x, y: camera_transform.translation.y, z: right.z }, time.delta_seconds() / 0.2); } else { camera_transform.rotation = camera_transform .rotation .lerp(Quat::default(), time.delta_seconds() / 0.2); + + camera_transform.translation = camera_transform.translation.lerp(Vec3 { + x: 0.0, + y: camera_transform.translation.y, + z: 0.0, + }, time.delta_seconds() / 0.2); } // headbob_camera(&mut camera_transform, time.delta_seconds_f64()); } diff --git a/src/logic/core/player/hands.rs b/src/logic/core/player/hands.rs index a24a3c7..84c07a3 100644 --- a/src/logic/core/player/hands.rs +++ b/src/logic/core/player/hands.rs @@ -28,7 +28,7 @@ pub fn capture_hand_usage( for mut hand_transform in hand_query.iter_mut() { if player_firing_info.is_reloading { - for mut player in &mut players { + for player in &mut players { if let Some(reload_animation) = animation_clips.get(&animations.reload_magazine) { if player.elapsed() >= reload_animation.duration() { magazine_data.rounds_shot = 0; @@ -45,7 +45,6 @@ pub fn capture_hand_usage( } // Set is_reloading = true // At the end of reload animation, set magazine data to capacity = 0 - } // AIMING IN/OUT if mouse_buttons.pressed(MouseButton::Right) { diff --git a/src/scenes/scene1/init.rs b/src/scenes/scene1/init.rs index a9764e0..ac251a5 100644 --- a/src/scenes/scene1/init.rs +++ b/src/scenes/scene1/init.rs @@ -43,6 +43,4 @@ pub fn load_scene(application: &mut App) { application.add_systems(Update, capture_hand_usage); application.add_systems(Startup, setup_lighting); - //application.add_systems(Update, setup_scene_once_loaded); - //application.add_systems(Update, play_animation); }