using UnityEngine; using UnityEngine.UIElements; using System.Collections.Generic; using System.Threading.Tasks; using Fusion; using System.Linq; namespace Hallucinate.UI { public class LobbyController : BaseUIController { private VisualTreeAsset _roomItemTemplate; private _BasicSpawner _spawner; private _PlayerDataManager _playerDataManager; // Containers private VisualElement _joinContainer, _createContainer, _loungeContainer, _passOverlay; // Create Room Fields private TextField _roomIDInput, _roomNameInput, _roomPassInput; private Toggle _passToggle; // Join Room Fields private ScrollView _roomList; private TextField _joinPassInput; private Label _joinPassError; private SessionInfo _selectedSession; // Lounge Elements private VisualElement _playerListContainer; private Button _readyBtn, _startBtn; private Label _loungeRoomName; public override void Initialize(VisualElement uxmlRoot, UIManager manager) { base.Initialize(uxmlRoot, manager); _spawner = Object.FindFirstObjectByType<_BasicSpawner>(); // Query Elements _joinContainer = root.Q("JoinContainer"); _createContainer = root.Q("CreateContainer"); _loungeContainer = root.Q("LoungeContainer"); _passOverlay = root.Q("PasswordOverlay"); _roomIDInput = root.Q("RoomIDInput"); _roomNameInput = root.Q("RoomNameInput"); _roomPassInput = root.Q("RoomPassInput"); _passToggle = root.Q("PassToggle"); _roomList = root.Q("RoomList"); _joinPassInput = root.Q("JoinPassInput"); _joinPassError = root.Q