killbox/scenes_old_2/utils/client_node/client_node.gd

29 lines
842 B
GDScript3
Raw Normal View History

2025-02-17 12:57:31 +00:00
extends Node3D
class_name ClientNode
2025-02-17 16:34:47 +00:00
@export var is_connected_to_camera: bool = false
2025-02-17 12:57:31 +00:00
var available_cameras: Array[CameraMount] = []
2025-02-18 12:30:48 +00:00
2025-02-17 12:57:31 +00:00
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _physics_process(delta: float) -> void:
2025-02-17 16:34:47 +00:00
if not is_connected_to_camera:
var game_root := helpers.get_root_node()
2025-02-18 12:30:48 +00:00
var available_cameras_raw: Array[Node] = game_root.find_children(
"*", "CameraMount", true, false
)
2025-02-17 16:34:47 +00:00
for camera_raw in available_cameras_raw:
var camera: CameraMount = camera_raw as CameraMount
if camera.active:
if camera.accept_input:
camera.connect_to_camera()
break
camera.connect_to_camera()
available_cameras.append(camera)
2025-02-18 12:30:48 +00:00
@rpc("authority", "reliable", "call_local")
func force_camera_attachment(camera_mount: CameraMount) -> void:
2025-02-17 16:34:47 +00:00
camera_mount.connect_to_camera()