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