1
0

LobbyGui.xaml.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using Content.Client.Message;
  2. using Content.Client.UserInterface.Systems.EscapeMenu;
  3. using Robust.Client.AutoGenerated;
  4. using Robust.Client.Console;
  5. using Robust.Client.UserInterface;
  6. using Robust.Client.UserInterface.XAML;
  7. namespace Content.Client.Lobby.UI
  8. {
  9. [GenerateTypedNameReferences]
  10. public sealed partial class LobbyGui : UIScreen
  11. {
  12. [Dependency] private readonly IClientConsoleHost _consoleHost = default!;
  13. public LobbyGui()
  14. {
  15. RobustXamlLoader.Load(this);
  16. IoCManager.InjectDependencies(this);
  17. SetAnchorPreset(MainContainer, LayoutPreset.Wide);
  18. SetAnchorPreset(Background, LayoutPreset.Wide);
  19. LobbySong.SetMarkup(Loc.GetString("lobby-state-song-no-song-text"));
  20. LeaveButton.OnPressed += _ => _consoleHost.ExecuteCommand("disconnect");
  21. OptionsButton.OnPressed += _ => UserInterfaceManager.GetUIController<OptionsUIController>().ToggleWindow();
  22. }
  23. public void SwitchState(LobbyGuiState state)
  24. {
  25. DefaultState.Visible = false;
  26. CharacterSetupState.Visible = false;
  27. switch (state)
  28. {
  29. case LobbyGuiState.Default:
  30. DefaultState.Visible = true;
  31. RightSide.Visible = true;
  32. break;
  33. case LobbyGuiState.CharacterSetup:
  34. CharacterSetupState.Visible = true;
  35. var actualWidth = (float) UserInterfaceManager.RootControl.PixelWidth;
  36. var setupWidth = (float) LeftSide.PixelWidth;
  37. if (1 - (setupWidth / actualWidth) > 0.30)
  38. {
  39. RightSide.Visible = false;
  40. }
  41. UserInterfaceManager.GetUIController<LobbyUIController>().ReloadCharacterSetup();
  42. break;
  43. }
  44. }
  45. public enum LobbyGuiState : byte
  46. {
  47. /// <summary>
  48. /// The default state, i.e., what's seen on launch.
  49. /// </summary>
  50. Default,
  51. /// <summary>
  52. /// The character setup state.
  53. /// </summary>
  54. CharacterSetup
  55. }
  56. }
  57. }