From 8ecce7e751cab1a45a757e69b04b84ead5a5ae93 Mon Sep 17 00:00:00 2001 From: "s0wlz (Matthias Puchstein)" Date: Tue, 14 Apr 2026 03:10:01 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20network=5Fmanager=20=E2=80=94=20overlay?= =?UTF-8?q?=20RPC=20+=20player=20position=20sync?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruf-der-pilze/scripts/network_manager.gd | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ruf-der-pilze/scripts/network_manager.gd b/ruf-der-pilze/scripts/network_manager.gd index 310bacd..56e2b30 100644 --- a/ruf-der-pilze/scripts/network_manager.gd +++ b/ruf-der-pilze/scripts/network_manager.gd @@ -131,3 +131,23 @@ func start_game() -> void: func _broadcast_player_left(peer_id: int) -> void: players.erase(peer_id) player_left.emit(peer_id) + + +@rpc("any_peer", "call_remote", "reliable") +func request_set_overlay(target_peer_id: int, overlay_name: String) -> void: + if not multiplayer.is_server(): + return + var requester_id := multiplayer.get_remote_sender_id() + if players.get(requester_id, {}).get("role", "") != "dm": + return + set_overlay.rpc_id(target_peer_id, overlay_name) + + +@rpc("authority", "call_remote", "reliable") +func set_overlay(overlay_name: String) -> void: + GameState.set_overlay_local(my_id, overlay_name) + + +@rpc("any_peer", "call_remote", "unreliable") +func sync_player_position(player_id: int, position: Vector3, rotation: Vector3) -> void: + GameState.update_player_transform(player_id, position, rotation)