using Content.Client.Message; using Content.Client.UserInterface.Systems.EscapeMenu; using Robust.Client.AutoGenerated; using Robust.Client.Console; using Robust.Client.UserInterface; using Robust.Client.UserInterface.XAML; namespace Content.Client.Lobby.UI { [GenerateTypedNameReferences] public sealed partial class LobbyGui : UIScreen { [Dependency] private readonly IClientConsoleHost _consoleHost = default!; public LobbyGui() { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); SetAnchorPreset(MainContainer, LayoutPreset.Wide); SetAnchorPreset(Background, LayoutPreset.Wide); LobbySong.SetMarkup(Loc.GetString("lobby-state-song-no-song-text")); LeaveButton.OnPressed += _ => _consoleHost.ExecuteCommand("disconnect"); OptionsButton.OnPressed += _ => UserInterfaceManager.GetUIController().ToggleWindow(); } public void SwitchState(LobbyGuiState state) { DefaultState.Visible = false; CharacterSetupState.Visible = false; switch (state) { case LobbyGuiState.Default: DefaultState.Visible = true; RightSide.Visible = true; break; case LobbyGuiState.CharacterSetup: CharacterSetupState.Visible = true; var actualWidth = (float) UserInterfaceManager.RootControl.PixelWidth; var setupWidth = (float) LeftSide.PixelWidth; if (1 - (setupWidth / actualWidth) > 0.30) { RightSide.Visible = false; } UserInterfaceManager.GetUIController().ReloadCharacterSetup(); break; } } public enum LobbyGuiState : byte { /// /// The default state, i.e., what's seen on launch. /// Default, /// /// The character setup state. /// CharacterSetup } } }