feat: Implement the initial main game scene, including GridMap, comprehensive UI, and mobile touch controls.
This commit is contained in:
@@ -680,6 +680,15 @@ func add_player_character(peer_id: int, is_bot: bool = false):
|
|||||||
|
|
||||||
GameStateManager.add_player(peer_id)
|
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():
|
if peer_id == multiplayer.get_unique_id():
|
||||||
GameStateManager.local_player_character = player_character
|
GameStateManager.local_player_character = player_character
|
||||||
ui_manager.set_local_player(player_character)
|
ui_manager.set_local_player(player_character)
|
||||||
|
|||||||
+23
-9
@@ -1028,23 +1028,37 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
texture = ExtResource("9_6gcb6")
|
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")
|
material = SubResource("ShaderMaterial_j8jky")
|
||||||
offset_left = 22.0
|
offset_left = 44.0
|
||||||
offset_top = 116.559875
|
offset_top = 113.710526
|
||||||
offset_right = 241.46997
|
offset_right = 216.29385
|
||||||
offset_bottom = 156.22003
|
offset_bottom = 153.37068
|
||||||
rotation = -0.10297442
|
rotation = -0.10297442
|
||||||
theme_override_styles/panel = SubResource("StyleBoxFlat_playerboard")
|
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]
|
[node name="PlayerBoardLabel" type="Label" parent="." unique_id=341385584]
|
||||||
anchors_preset = 4
|
anchors_preset = 4
|
||||||
anchor_top = 0.5
|
anchor_top = 0.5
|
||||||
anchor_bottom = 0.5
|
anchor_bottom = 0.5
|
||||||
offset_left = 31.000004
|
offset_left = 170.71896
|
||||||
offset_top = -243.44012
|
offset_top = -258.02036
|
||||||
offset_right = 71.0
|
offset_right = 210.71896
|
||||||
offset_bottom = -207.44012
|
offset_bottom = -222.02036
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
rotation = -0.10297442
|
rotation = -0.10297442
|
||||||
theme_override_fonts/font = ExtResource("13_j8jky")
|
theme_override_fonts/font = ExtResource("13_j8jky")
|
||||||
|
|||||||
@@ -161,6 +161,8 @@ func _ready():
|
|||||||
# Look up player's display name from LobbyManager
|
# Look up player's display name from LobbyManager
|
||||||
var my_id = get_multiplayer_authority()
|
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"):
|
if is_bot or is_in_group("Bots"):
|
||||||
# Bots get a unique name based on their Node Name (Bot ID)
|
# Bots get a unique name based on their Node Name (Bot ID)
|
||||||
var bot_id = name.to_int()
|
var bot_id = name.to_int()
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ var action_menu_instance
|
|||||||
var powerup_inventory_ui
|
var powerup_inventory_ui
|
||||||
var timer_label: Label
|
var timer_label: Label
|
||||||
var playerboard_label: Label # Shows (xN) goal completions
|
var playerboard_label: Label # Shows (xN) goal completions
|
||||||
|
var player_name_label: Label # Shows player name on main UI
|
||||||
|
|
||||||
var local_player_character
|
var local_player_character
|
||||||
var _previous_playerboard_state: Array = []
|
var _previous_playerboard_state: Array = []
|
||||||
@@ -59,6 +60,9 @@ func initialize(player_node):
|
|||||||
arrange_button = player_node.get_node("ActionMenu/ActionButtonContainer/ArrangeButton")
|
arrange_button = player_node.get_node("ActionMenu/ActionButtonContainer/ArrangeButton")
|
||||||
playerboard_ui = player_node.get_node("PlayerboardUI")
|
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) ...
|
# ... (skipping unchanged functions) ...
|
||||||
|
|
||||||
func set_local_player(player):
|
func set_local_player(player):
|
||||||
@@ -70,6 +74,11 @@ func set_local_player(player):
|
|||||||
# Connect to powerup signals with deferred call (manager needs time to initialize)
|
# Connect to powerup signals with deferred call (manager needs time to initialize)
|
||||||
_connect_powerup_manager_deferred(player)
|
_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):
|
func setup_action_buttons(action_state_callback):
|
||||||
move_button.pressed.connect(func(): action_state_callback.call(ActionState.MOVING))
|
move_button.pressed.connect(func(): action_state_callback.call(ActionState.MOVING))
|
||||||
grab_button.pressed.connect(func(): action_state_callback.call(ActionState.GRABBING))
|
grab_button.pressed.connect(func(): action_state_callback.call(ActionState.GRABBING))
|
||||||
|
|||||||
Reference in New Issue
Block a user