feat: Implement Nakama serialization, Realtime API, and a comprehensive lobby system with UI and player management.
This commit is contained in:
@@ -277,6 +277,37 @@ func sync_character(player_id: int, character_name: String) -> void:
|
||||
emit_signal("character_changed", player_id, character_name)
|
||||
emit_signal("player_list_changed")
|
||||
|
||||
# =============================================================================
|
||||
# Player Name Management
|
||||
# =============================================================================
|
||||
|
||||
func set_player_name(new_name: String) -> void:
|
||||
"""Set local player's name. Syncs to all peers."""
|
||||
local_player_name = new_name
|
||||
var my_id = multiplayer.get_unique_id()
|
||||
|
||||
# Update local player data
|
||||
for player in players_in_room:
|
||||
if player["id"] == my_id:
|
||||
player["name"] = new_name
|
||||
break
|
||||
|
||||
# Sync to all peers if connected
|
||||
if multiplayer.has_multiplayer_peer():
|
||||
rpc("sync_player_name", my_id, new_name)
|
||||
|
||||
emit_signal("player_list_changed")
|
||||
|
||||
@rpc("any_peer", "call_local", "reliable")
|
||||
func sync_player_name(player_id: int, new_name: String) -> void:
|
||||
"""Sync player name across all clients."""
|
||||
for player in players_in_room:
|
||||
if player["id"] == player_id:
|
||||
player["name"] = new_name
|
||||
break
|
||||
|
||||
emit_signal("player_list_changed")
|
||||
|
||||
# =============================================================================
|
||||
# Area Selection (Host Only)
|
||||
# =============================================================================
|
||||
|
||||
Reference in New Issue
Block a user