Chelimbalo/scripts/player/dead_player_spectator.gd
2025-11-30 16:22:11 +05:00

36 lines
965 B
GDScript

extends Camera3D
@export var SPEED = 10.0
var active: bool
func _ready() -> void:
if not is_multiplayer_authority():
return
func set_active() -> void:
if not is_multiplayer_authority():
return
active = true
current = true
top_level = true
func _process(delta: float) -> void:
if active == false or not is_multiplayer_authority():
return
var xz_plane = Input.get_vector("plr_strafe_l","plr_strafe_r","plr_forward","plr_back")
var y = Input.get_axis("spc_down","spc_up")
var direction = Vector3(xz_plane.x,y,xz_plane.y)
global_position += global_basis * direction * SPEED * delta
func rotate_camera(x,y) -> void:
rotate_y(x)
rotation.x = clamp(rotation.x + y,-PI/2,PI/2)
orthonormalize()
func _input(event: InputEvent) -> void:
if active == false or not is_multiplayer_authority():
return
if event is InputEventMouseMotion:
rotate_camera(-event.relative.x * ClientSettings.SENSITIVITY,-event.relative.y * ClientSettings.SENSITIVITY)