net: add request_update_character RPC + character_updated signal

This commit is contained in:
2026-04-16 00:52:02 +02:00
parent fd6fa06a21
commit 1bec9f241f

View File

@@ -144,3 +144,22 @@ func _build_room_assignments() -> Dictionary:
func _broadcast_player_left(peer_id: int) -> void:
players.erase(peer_id)
player_left.emit(peer_id)
signal character_updated(peer_id: int, data: Dictionary)
# Client → Server
@rpc("any_peer", "call_remote", "reliable")
func request_update_character(data: Dictionary) -> void:
if not multiplayer.is_server(): return
var peer_id := multiplayer.get_remote_sender_id()
if not players.has(peer_id): return
players[peer_id]["char"] = data
_relay_character_update.rpc(peer_id, data)
# Server → All
@rpc("authority", "call_local", "reliable")
func _relay_character_update(peer_id: int, data: Dictionary) -> void:
if players.has(peer_id):
players[peer_id]["char"] = data
character_updated.emit(peer_id, data)