Disable movement and camera rotation while dead
This commit is contained in:
parent
18f298bf10
commit
b2dbd2deee
@ -69,8 +69,12 @@ impl<T: IPlayer + ICharacterBody3D + WithBaseField> 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::<InputEventMouseMotion>() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user