From c698b163b6786954a75ef9f902b5e5bb2fdb7667 Mon Sep 17 00:00:00 2001
From: Errant <35878406+Errant-4@users.noreply.github.com>
Date: Wed, 26 Feb 2025 23:32:42 +0100
Subject: [PATCH] Admin Options tab (#35543)
* admin options tab initial
* make admin tab only visible to admins
---
Content.Client/Options/UI/OptionsMenu.xaml | 1 +
Content.Client/Options/UI/OptionsMenu.xaml.cs | 9 ++++++++-
.../Options/UI/Tabs/AdminOptionsTab.xaml | 12 +++++++++++
.../Options/UI/Tabs/AdminOptionsTab.xaml.cs | 20 +++++++++++++++++++
.../en-US/escape-menu/ui/options-menu.ftl | 7 ++++++-
5 files changed, 47 insertions(+), 2 deletions(-)
create mode 100644 Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml
create mode 100644 Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml.cs
diff --git a/Content.Client/Options/UI/OptionsMenu.xaml b/Content.Client/Options/UI/OptionsMenu.xaml
index 90486a196a..21c4b64ce8 100644
--- a/Content.Client/Options/UI/OptionsMenu.xaml
+++ b/Content.Client/Options/UI/OptionsMenu.xaml
@@ -8,5 +8,6 @@
+
diff --git a/Content.Client/Options/UI/OptionsMenu.xaml.cs b/Content.Client/Options/UI/OptionsMenu.xaml.cs
index b749d1f234..9efd04fd0b 100644
--- a/Content.Client/Options/UI/OptionsMenu.xaml.cs
+++ b/Content.Client/Options/UI/OptionsMenu.xaml.cs
@@ -1,4 +1,4 @@
-using Content.Client.Options.UI.Tabs;
+using Content.Client.Administration.Managers;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
@@ -8,6 +8,8 @@ namespace Content.Client.Options.UI
[GenerateTypedNameReferences]
public sealed partial class OptionsMenu : DefaultWindow
{
+ [Dependency] private readonly IClientAdminManager _adminManager = default!;
+
public OptionsMenu()
{
RobustXamlLoader.Load(this);
@@ -18,16 +20,21 @@ namespace Content.Client.Options.UI
Tabs.SetTabTitle(2, Loc.GetString("ui-options-tab-controls"));
Tabs.SetTabTitle(3, Loc.GetString("ui-options-tab-audio"));
Tabs.SetTabTitle(4, Loc.GetString("ui-options-tab-accessibility"));
+ Tabs.SetTabTitle(5, Loc.GetString("ui-options-tab-admin"));
UpdateTabs();
}
public void UpdateTabs()
{
+ var isAdmin = _adminManager.IsAdmin(true);
+ Tabs.SetTabVisible(5, isAdmin);
+
GraphicsTab.Control.ReloadValues();
MiscTab.Control.ReloadValues();
AccessibilityTab.Control.ReloadValues();
AudioTab.Control.ReloadValues();
+ AdminOptionsTab.Control.ReloadValues();
}
}
}
diff --git a/Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml b/Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml
new file mode 100644
index 0000000000..38666b7ec1
--- /dev/null
+++ b/Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml.cs b/Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml.cs
new file mode 100644
index 0000000000..9661adfa20
--- /dev/null
+++ b/Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml.cs
@@ -0,0 +1,20 @@
+using Content.Shared.CCVar;
+using Robust.Client.AutoGenerated;
+using Robust.Client.UserInterface;
+using Robust.Client.UserInterface.XAML;
+
+namespace Content.Client.Options.UI.Tabs;
+
+[GenerateTypedNameReferences]
+public sealed partial class AdminOptionsTab : Control
+{
+ public AdminOptionsTab()
+ {
+ RobustXamlLoader.Load(this);
+
+ Control.AddOptionCheckBox(CCVars.AdminOverlayClassic, EnableClassicOverlayCheckBox);
+
+ Control.Initialize();
+ }
+}
+
diff --git a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl
index f0bade27e1..e6b6a5250a 100644
--- a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl
+++ b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl
@@ -2,6 +2,7 @@
ui-options-title = Game Options
ui-options-tab-accessibility = Accessibility
+ui-options-tab-admin = Admin
ui-options-tab-graphics = Graphics
ui-options-tab-controls = Controls
ui-options-tab-audio = Audio
@@ -285,4 +286,8 @@ ui-options-screen-shake-intensity = Screen shake intensity
ui-options-chat-window-opacity = Chat window opacity
ui-options-speech-bubble-text-opacity = Speech bubble text opacity
ui-options-speech-bubble-speaker-opacity = Speech bubble speaker opacity
-ui-options-speech-bubble-background-opacity = Speech bubble background opacity
\ No newline at end of file
+ui-options-speech-bubble-background-opacity = Speech bubble background opacity
+
+## Admin menu
+
+ui-options-enable-classic-overlay = Revert antag overlay to classic mode