diff --git a/scenes/main.gd b/scenes/main.gd index 2124650..48be9c1 100644 --- a/scenes/main.gd +++ b/scenes/main.gd @@ -680,6 +680,15 @@ func add_player_character(peer_id: int, is_bot: bool = false): GameStateManager.add_player(peer_id) + # Try to set name from LobbyManager data if available + var lobby_players = LobbyManager.get_players() + for p_data in lobby_players: + if p_data.get("id") == peer_id: + var p_name = p_data.get("name", "Player") + player_character.display_name = p_name + print("[Main] Set player %d name to %s from Lobby data" % [peer_id, p_name]) + break + if peer_id == multiplayer.get_unique_id(): GameStateManager.local_player_character = player_character ui_manager.set_local_player(player_character) diff --git a/scenes/main.tscn b/scenes/main.tscn index 16307d9..296f630 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -1028,23 +1028,37 @@ grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("9_6gcb6") -[node name="PlayerboardPanel2" type="PanelContainer" parent="." unique_id=1458381676] +[node name="PlayeBoardPanelName" type="PanelContainer" parent="." unique_id=1458381676] material = SubResource("ShaderMaterial_j8jky") -offset_left = 22.0 -offset_top = 116.559875 -offset_right = 241.46997 -offset_bottom = 156.22003 +offset_left = 44.0 +offset_top = 113.710526 +offset_right = 216.29385 +offset_bottom = 153.37068 rotation = -0.10297442 theme_override_styles/panel = SubResource("StyleBoxFlat_playerboard") +[node name="PlayerName" type="Label" parent="." unique_id=254337877] +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_left = 50.718987 +offset_top = -244.58023 +offset_right = 133.719 +offset_bottom = -208.58023 +grow_vertical = 2 +rotation = -0.10297442 +theme_override_fonts/font = ExtResource("13_j8jky") +theme_override_font_sizes/font_size = 32 +text = "Guest" + [node name="PlayerBoardLabel" type="Label" parent="." unique_id=341385584] anchors_preset = 4 anchor_top = 0.5 anchor_bottom = 0.5 -offset_left = 31.000004 -offset_top = -243.44012 -offset_right = 71.0 -offset_bottom = -207.44012 +offset_left = 170.71896 +offset_top = -258.02036 +offset_right = 210.71896 +offset_bottom = -222.02036 grow_vertical = 2 rotation = -0.10297442 theme_override_fonts/font = ExtResource("13_j8jky") diff --git a/scenes/player.gd b/scenes/player.gd index 334bd7d..1966279 100644 --- a/scenes/player.gd +++ b/scenes/player.gd @@ -161,6 +161,8 @@ func _ready(): # Look up player's display name from LobbyManager var my_id = get_multiplayer_authority() + print("[Player] _ready for %s (Auth: %s). Current display_name: '%s'" % [name, my_id, display_name]) + if is_bot or is_in_group("Bots"): # Bots get a unique name based on their Node Name (Bot ID) var bot_id = name.to_int() diff --git a/scripts/managers/ui_manager.gd b/scripts/managers/ui_manager.gd index 41d3258..8b5edb3 100644 --- a/scripts/managers/ui_manager.gd +++ b/scripts/managers/ui_manager.gd @@ -28,6 +28,7 @@ var action_menu_instance var powerup_inventory_ui var timer_label: Label var playerboard_label: Label # Shows (xN) goal completions +var player_name_label: Label # Shows player name on main UI var local_player_character var _previous_playerboard_state: Array = [] @@ -58,6 +59,9 @@ func initialize(player_node): randomize_button = button_container.get_node("RandomizeButton") # renamed main_node to player_node which is Main arrange_button = player_node.get_node("ActionMenu/ActionButtonContainer/ArrangeButton") playerboard_ui = player_node.get_node("PlayerboardUI") + + # Connect PlayerName label (Level/XP/Name UI) + player_name_label = player_node.get_node_or_null("PlayerName") # ... (skipping unchanged functions) ... @@ -70,6 +74,11 @@ func set_local_player(player): # Connect to powerup signals with deferred call (manager needs time to initialize) _connect_powerup_manager_deferred(player) + # Update Player Name Label + if player_name_label: + player_name_label.text = player.display_name + print("[UIManager] Updated PlayerName label to: ", player.display_name) + func setup_action_buttons(action_state_callback): move_button.pressed.connect(func(): action_state_callback.call(ActionState.MOVING)) grab_button.pressed.connect(func(): action_state_callback.call(ActionState.GRABBING))