| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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<OptionsUIController>().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<LobbyUIController>().ReloadCharacterSetup();
- break;
- }
- }
- public enum LobbyGuiState : byte
- {
- /// <summary>
- /// The default state, i.e., what's seen on launch.
- /// </summary>
- Default,
- /// <summary>
- /// The character setup state.
- /// </summary>
- CharacterSetup
- }
- }
- }
|