]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Admin Options tab (#35543)
authorErrant <35878406+Errant-4@users.noreply.github.com>
Wed, 26 Feb 2025 22:32:42 +0000 (23:32 +0100)
committerGitHub <noreply@github.com>
Wed, 26 Feb 2025 22:32:42 +0000 (23:32 +0100)
* admin options tab initial

* make admin tab only visible to admins

Content.Client/Options/UI/OptionsMenu.xaml
Content.Client/Options/UI/OptionsMenu.xaml.cs
Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml [new file with mode: 0644]
Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml.cs [new file with mode: 0644]
Resources/Locale/en-US/escape-menu/ui/options-menu.ftl

index 90486a196ad1961dbbff5ac813a2a06a34691a47..21c4b64ce8fa012f245cf9572c1f4722d3e76738 100644 (file)
@@ -8,5 +8,6 @@
         <tabs:KeyRebindTab Name="KeyRebindTab" />
         <tabs:AudioTab Name="AudioTab" />
         <tabs:AccessibilityTab Name="AccessibilityTab" />
+        <tabs:AdminOptionsTab Name="AdminOptionsTab" />
     </TabContainer>
 </DefaultWindow>
index b749d1f234d0e4aeb3fe3fcadd8a323181e87e28..9efd04fd0b810861a6d930ccc518b47de9af619e 100644 (file)
@@ -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 (file)
index 0000000..38666b7
--- /dev/null
@@ -0,0 +1,12 @@
+<Control xmlns="https://spacestation14.io"
+         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+         xmlns:ui="clr-namespace:Content.Client.Options.UI">
+    <BoxContainer Orientation="Vertical">
+        <ScrollContainer VerticalExpand="True" HScrollEnabled="False">
+            <BoxContainer Orientation="Vertical" Margin="8">
+                <CheckBox Name="EnableClassicOverlayCheckBox" Text="{Loc 'ui-options-enable-classic-overlay'}" />
+            </BoxContainer>
+        </ScrollContainer>
+        <ui:OptionsTabControlRow Name="Control" Access="Public" />
+    </BoxContainer>
+</Control>
diff --git a/Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml.cs b/Content.Client/Options/UI/Tabs/AdminOptionsTab.xaml.cs
new file mode 100644 (file)
index 0000000..9661adf
--- /dev/null
@@ -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();
+    }
+}
+
index f0bade27e1bc44674c585eded7739034c405c925..e6b6a5250a35242b33fe4c69756acafb903fb35c 100644 (file)
@@ -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