net: add request_update_character RPC + character_updated signal
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user