using Content.Client.Message;
using Content.Client.UserInterface.Systems.Chat;
using Content.Client.Voting;
+using Content.Shared.CCVar;
using Robust.Client;
using Robust.Client.Console;
using Robust.Client.ResourceManagement;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
+using Robust.Shared.Configuration;
using Robust.Shared.Timing;
-
namespace Content.Client.Lobby
{
public sealed class LobbyState : Robust.Client.State.State
{
[Dependency] private readonly IBaseClient _baseClient = default!;
+ [Dependency] private readonly IConfigurationManager _cfg = default!;
[Dependency] private readonly IClientConsoleHost _consoleHost = default!;
[Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly IResourceCache _resourceCache = default!;
_voteManager.SetPopupContainer(Lobby.VoteContainer);
LayoutContainer.SetAnchorPreset(Lobby, LayoutContainer.LayoutPreset.Wide);
- Lobby.ServerName.Text = _baseClient.GameInfo?.ServerName; //The eye of refactor gazes upon you...
+
+ var lobbyNameCvar = _cfg.GetCVar(CCVars.ServerLobbyName);
+ var serverName = _baseClient.GameInfo?.ServerName ?? string.Empty;
+
+ Lobby.ServerName.Text = string.IsNullOrEmpty(lobbyNameCvar)
+ ? Loc.GetString("ui-lobby-title", ("serverName", serverName))
+ : lobbyNameCvar;
+
+ var width = _cfg.GetCVar(CCVars.ServerLobbyRightPanelWidth);
+ Lobby.RightSide.SetWidth = width;
+
UpdateLobbyUi();
Lobby.CharacterPreview.CharacterSetupButton.OnPressed += OnSetupPressed;
<Control Access="Public" Visible="False" Name="CharacterSetupState" VerticalExpand="True" />
</BoxContainer>
<!-- Right Panel -->
- <PanelContainer Name="RightSide" StyleClasses="AngleRect" HorizontalAlignment="Right" VerticalExpand="True"
+ <PanelContainer Name="RightSide" Access="Public" StyleClasses="AngleRect" HorizontalAlignment="Right" VerticalExpand="True"
VerticalAlignment="Stretch">
<BoxContainer Orientation="Vertical" HorizontalExpand="True">
<!-- Top row -->
<BoxContainer Orientation="Horizontal" MinSize="0 40" Name="HeaderContainer" Access="Public"
SeparationOverride="4">
- <Label Margin="8 0 0 0" StyleClasses="LabelHeadingBigger" VAlign="Center"
- Text="{Loc 'ui-lobby-title'}" />
<Label Name="ServerName" Access="Public" StyleClasses="LabelHeadingBigger" VAlign="Center"
HorizontalExpand="True" HorizontalAlignment="Center" />
</BoxContainer>
/// </remarks>
public static readonly CVarDef<int> ServerUptimeRestartMinutes =
CVarDef.Create("server.uptime_restart_minutes", 0, CVar.SERVERONLY);
+
+ /// <summary>
+ /// This will be the title shown in the lobby
+ /// If empty, the title will be {ui-lobby-title} + the server's full name from the hub
+ /// </summary>
+ public static readonly CVarDef<string> ServerLobbyName =
+ CVarDef.Create("server.lobby_name", "", CVar.REPLICATED | CVar.SERVER);
+
+ /// <summary>
+ /// The width of the right side (chat) panel in the lobby
+ /// </summary>
+ public static readonly CVarDef<int> ServerLobbyRightPanelWidth =
+ CVarDef.Create("server.lobby_right_panel_width", 650, CVar.REPLICATED | CVar.SERVER);
}