Disable movement and camera rotation while dead
This commit is contained in:
parent
18f298bf10
commit
b2dbd2deee
@ -69,10 +69,14 @@ impl<T: IPlayer + ICharacterBody3D + WithBaseField> PlayerMovement for T {
|
|||||||
.rotated(Vector3::UP, self.base().get_rotation().y)
|
.rotated(Vector3::UP, self.base().get_rotation().y)
|
||||||
* self.get_move_speed();
|
* self.get_move_speed();
|
||||||
|
|
||||||
|
if self.is_dead() {
|
||||||
|
self.base_mut().set_velocity(Vector3::ZERO);
|
||||||
|
} else {
|
||||||
self.base_mut().set_velocity(speed);
|
self.base_mut().set_velocity(speed);
|
||||||
self.base_mut().move_and_slide();
|
self.base_mut().move_and_slide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(GodotClass)]
|
#[derive(GodotClass)]
|
||||||
#[class(base=CharacterBody3D, init)]
|
#[class(base=CharacterBody3D, init)]
|
||||||
@ -307,6 +311,7 @@ impl ICharacterBody3D for LocalPlayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let Ok(event) = event.try_cast::<InputEventMouseMotion>() {
|
if let Ok(event) = event.try_cast::<InputEventMouseMotion>() {
|
||||||
|
if !self.is_dead() {
|
||||||
let x = event.get_relative().x * 0.001 * self.look_sensitivity;
|
let x = event.get_relative().x * 0.001 * self.look_sensitivity;
|
||||||
let y = event.get_relative().y * 0.001 * self.look_sensitivity;
|
let y = event.get_relative().y * 0.001 * self.look_sensitivity;
|
||||||
|
|
||||||
@ -324,6 +329,7 @@ impl ICharacterBody3D for LocalPlayer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[godot_api]
|
#[godot_api]
|
||||||
impl LocalPlayer {
|
impl LocalPlayer {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user