feat: Introduce lobby functionality with UI, server selection, and game state management.
This commit is contained in:
+21
-9
@@ -41,6 +41,7 @@ extends Control
|
||||
|
||||
# UI References - Player Slots
|
||||
@onready var players_container = $LobbyPanel/PlayersContainer
|
||||
@onready var players_container2 = $LobbyPanel/PlayersContainer2
|
||||
@onready var player_slots: Array[Control] = []
|
||||
|
||||
# UI References - Area Selector
|
||||
@@ -224,23 +225,34 @@ func _setup_scarcity_ui() -> void:
|
||||
# Add to scene
|
||||
settings_section.add_child(scarcity_option)
|
||||
settings_section.add_child(scarcity_label)
|
||||
|
||||
# Initial visibility update will handle showing correct one
|
||||
|
||||
func _setup_player_slots() -> void:
|
||||
"""Get references to all player slot nodes."""
|
||||
player_slots.clear()
|
||||
|
||||
# Slots 1-4 in Container 1
|
||||
for i in range(1, 5):
|
||||
var slot = players_container.get_node_or_null("PlayerSlot%d" % i)
|
||||
if slot:
|
||||
player_slots.append(slot)
|
||||
# Connect character navigation buttons for all slots
|
||||
var left_btn = slot.get_node_or_null("CharacterNav%d/CharLeftBtn%d" % [i, i])
|
||||
var right_btn = slot.get_node_or_null("CharacterNav%d/CharRightBtn%d" % [i, i])
|
||||
if left_btn:
|
||||
left_btn.pressed.connect(func(): LobbyManager.cycle_character(-1))
|
||||
if right_btn:
|
||||
right_btn.pressed.connect(func(): LobbyManager.cycle_character(1))
|
||||
_connect_slot_signals(slot, i)
|
||||
|
||||
# Slots 5-8 in Container 2
|
||||
if players_container2:
|
||||
for i in range(5, 9):
|
||||
var slot = players_container2.get_node_or_null("PlayerSlot%d" % i)
|
||||
if slot:
|
||||
player_slots.append(slot)
|
||||
_connect_slot_signals(slot, i)
|
||||
|
||||
func _connect_slot_signals(slot: Control, i: int):
|
||||
# Connect character navigation buttons for all slots
|
||||
var left_btn = slot.get_node_or_null("CharacterNav%d/CharLeftBtn%d" % [i, i])
|
||||
var right_btn = slot.get_node_or_null("CharacterNav%d/CharRightBtn%d" % [i, i])
|
||||
if left_btn:
|
||||
left_btn.pressed.connect(func(): LobbyManager.cycle_character(-1))
|
||||
if right_btn:
|
||||
right_btn.pressed.connect(func(): LobbyManager.cycle_character(1))
|
||||
|
||||
# =============================================================================
|
||||
# Panel Management
|
||||
|
||||
Reference in New Issue
Block a user