From b2dbd2deeefa0ada4d9db4df25d60767a165ca34 Mon Sep 17 00:00:00 2001 From: Sofia Date: Mon, 20 Jul 2026 22:20:12 +0300 Subject: [PATCH] Disable movement and camera rotation while dead --- rust/src/player.rs | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/rust/src/player.rs b/rust/src/player.rs index c893a04..0645f1d 100644 --- a/rust/src/player.rs +++ b/rust/src/player.rs @@ -69,8 +69,12 @@ impl PlayerMovement for T { .rotated(Vector3::UP, self.base().get_rotation().y) * self.get_move_speed(); - self.base_mut().set_velocity(speed); - self.base_mut().move_and_slide(); + if self.is_dead() { + self.base_mut().set_velocity(Vector3::ZERO); + } else { + self.base_mut().set_velocity(speed); + self.base_mut().move_and_slide(); + } } } @@ -307,19 +311,21 @@ impl ICharacterBody3D for LocalPlayer { } if let Ok(event) = event.try_cast::() { - let x = event.get_relative().x * 0.001 * self.look_sensitivity; - let y = event.get_relative().y * 0.001 * self.look_sensitivity; + if !self.is_dead() { + let x = event.get_relative().x * 0.001 * self.look_sensitivity; + let y = event.get_relative().y * 0.001 * self.look_sensitivity; - if let Some(camera) = self.camera.as_mut() { - let curr_rotation = camera.get_rotation(); - let x_rot = - (curr_rotation.x - y * self.look_sensitivity).clamp(-PI / 2., PI / 2.); - camera.set_rotation(Vector3::RIGHT * x_rot); - self.look_up = x_rot; + if let Some(camera) = self.camera.as_mut() { + let curr_rotation = camera.get_rotation(); + let x_rot = + (curr_rotation.x - y * self.look_sensitivity).clamp(-PI / 2., PI / 2.); + camera.set_rotation(Vector3::RIGHT * x_rot); + self.look_up = x_rot; + } + + let y_rot = -x * self.look_sensitivity; + self.base_mut().rotate_y(y_rot); } - - let y_rot = -x * self.look_sensitivity; - self.base_mut().rotate_y(y_rot); } } }