]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Header of Gas tank UI screen now fetched from Entity name and local (#28545)
authorAJCM-git <60196617+AJCM-git@users.noreply.github.com>
Mon, 3 Jun 2024 03:33:30 +0000 (23:33 -0400)
committerGitHub <noreply@github.com>
Mon, 3 Jun 2024 03:33:30 +0000 (23:33 -0400)
Content.Client/UserInterface/Systems/Atmos/GasTank/GasTankBoundUserInterface.cs
Content.Client/UserInterface/Systems/Atmos/GasTank/GasTankWindow.cs
Resources/Locale/en-US/atmos/gas-tank-component.ftl

index ee8cb28d2ccc4897020ecc6bfce484b1a65949d6..4702f8f3659494e6950dd99949786b764d79a647 100644 (file)
@@ -1,6 +1,5 @@
 using Content.Shared.Atmos.Components;
 using JetBrains.Annotations;
-using Robust.Client.GameObjects;
 
 namespace Content.Client.UserInterface.Systems.Atmos.GasTank
 {
@@ -30,7 +29,7 @@ namespace Content.Client.UserInterface.Systems.Atmos.GasTank
         protected override void Open()
         {
             base.Open();
-            _window = new GasTankWindow(this);
+            _window = new GasTankWindow(this, EntMan.GetComponent<MetaDataComponent>(Owner).EntityName);
             _window.OnClose += Close;
             _window.OpenCentered();
         }
index 7797a096de30f94a03462a76f6c887c1928a4ffc..c23850a6503472bc8191e8ed09e8166942655212 100644 (file)
@@ -10,201 +10,194 @@ using Robust.Client.UserInterface.Controls;
 using Robust.Client.UserInterface.CustomControls;
 using static Robust.Client.UserInterface.Controls.BoxContainer;
 
-namespace Content.Client.UserInterface.Systems.Atmos.GasTank
+namespace Content.Client.UserInterface.Systems.Atmos.GasTank;
+
+public sealed class GasTankWindow
+    : BaseWindow
 {
-    public sealed class GasTankWindow
-        : BaseWindow
-    {
-        private GasTankBoundUserInterface _owner;
-        private readonly Label _lblName;
-        private readonly BoxContainer _topContainer;
-        private readonly Control _contentContainer;
+    private readonly RichTextLabel _lblPressure;
+    private readonly FloatSpinBox _spbPressure;
+    private readonly RichTextLabel _lblInternals;
+    private readonly Button _btnInternals;
 
+    public GasTankWindow(GasTankBoundUserInterface owner, string uidName)
+    {
+        Control contentContainer;
+        BoxContainer topContainer;
+        TextureButton btnClose;
+        var resourceCache = IoCManager.Resolve<IResourceCache>();
+        var rootContainer = new LayoutContainer { Name = "GasTankRoot" };
+        AddChild(rootContainer);
 
-        private readonly IResourceCache _resourceCache = default!;
-        private readonly RichTextLabel _lblPressure;
-        private readonly FloatSpinBox _spbPressure;
-        private readonly RichTextLabel _lblInternals;
-        private readonly Button _btnInternals;
+        MouseFilter = MouseFilterMode.Stop;
 
-        public GasTankWindow(GasTankBoundUserInterface owner)
+        var panelTex = resourceCache.GetTexture("/Textures/Interface/Nano/button.svg.96dpi.png");
+        var back = new StyleBoxTexture
         {
-            TextureButton btnClose;
-            _resourceCache = IoCManager.Resolve<IResourceCache>();
-            _owner = owner;
-            var rootContainer = new LayoutContainer {Name = "GasTankRoot"};
-            AddChild(rootContainer);
+            Texture = panelTex,
+            Modulate = Color.FromHex("#25252A"),
+        };
 
-            MouseFilter = MouseFilterMode.Stop;
+        back.SetPatchMargin(StyleBox.Margin.All, 10);
 
-            var panelTex = _resourceCache.GetTexture("/Textures/Interface/Nano/button.svg.96dpi.png");
-            var back = new StyleBoxTexture
-            {
-                Texture = panelTex,
-                Modulate = Color.FromHex("#25252A"),
-            };
-
-            back.SetPatchMargin(StyleBox.Margin.All, 10);
-
-            var topPanel = new PanelContainer
-            {
-                PanelOverride = back,
-                MouseFilter = MouseFilterMode.Pass
-            };
+        var topPanel = new PanelContainer
+        {
+            PanelOverride = back,
+            MouseFilter = MouseFilterMode.Pass
+        };
 
-            var bottomWrap = new LayoutContainer
-            {
-                Name = "BottomWrap"
-            };
+        var bottomWrap = new LayoutContainer
+        {
+            Name = "BottomWrap"
+        };
 
-            rootContainer.AddChild(topPanel);
-            rootContainer.AddChild(bottomWrap);
+        rootContainer.AddChild(topPanel);
+        rootContainer.AddChild(bottomWrap);
 
-            LayoutContainer.SetAnchorPreset(topPanel, LayoutContainer.LayoutPreset.Wide);
-            LayoutContainer.SetMarginBottom(topPanel, -85);
+        LayoutContainer.SetAnchorPreset(topPanel, LayoutContainer.LayoutPreset.Wide);
+        LayoutContainer.SetMarginBottom(topPanel, -85);
 
-            LayoutContainer.SetAnchorPreset(bottomWrap, LayoutContainer.LayoutPreset.VerticalCenterWide);
-            LayoutContainer.SetGrowHorizontal(bottomWrap, LayoutContainer.GrowDirection.Both);
+        LayoutContainer.SetAnchorPreset(bottomWrap, LayoutContainer.LayoutPreset.VerticalCenterWide);
+        LayoutContainer.SetGrowHorizontal(bottomWrap, LayoutContainer.GrowDirection.Both);
 
 
-            var topContainerWrap = new BoxContainer
+        var topContainerWrap = new BoxContainer
+        {
+            Orientation = LayoutOrientation.Vertical,
+            Children =
             {
-                Orientation = LayoutOrientation.Vertical,
-                Children =
+                (topContainer = new BoxContainer
                 {
-                    (_topContainer = new BoxContainer
-                    {
-                        Orientation = LayoutOrientation.Vertical
-                    }),
-                    new Control {MinSize = new Vector2(0, 110)}
-                }
-            };
+                    Orientation = LayoutOrientation.Vertical
+                }),
+                new Control {MinSize = new Vector2(0, 110)}
+            }
+        };
 
-            rootContainer.AddChild(topContainerWrap);
+        rootContainer.AddChild(topContainerWrap);
 
-            LayoutContainer.SetAnchorPreset(topContainerWrap, LayoutContainer.LayoutPreset.Wide);
+        LayoutContainer.SetAnchorPreset(topContainerWrap, LayoutContainer.LayoutPreset.Wide);
 
-            var font = _resourceCache.GetFont("/Fonts/Boxfont-round/Boxfont Round.ttf", 13);
+        var font = resourceCache.GetFont("/Fonts/Boxfont-round/Boxfont Round.ttf", 13);
 
-            var topRow = new BoxContainer
+        var topRow = new BoxContainer
+        {
+            Orientation = LayoutOrientation.Horizontal,
+            Margin = new Thickness(4, 2, 12, 2),
+            Children =
             {
-                Orientation = LayoutOrientation.Horizontal,
-                Margin = new Thickness(4, 2, 12, 2),
-                Children =
+                (new Label
                 {
-                    (_lblName = new Label
-                    {
-                        Text = Loc.GetString("gas-tank-window-label"),
-                        FontOverride = font,
-                        FontColorOverride = StyleNano.NanoGold,
-                        VerticalAlignment = VAlignment.Center,
-                        HorizontalExpand = true,
-                        HorizontalAlignment = HAlignment.Left,
-                        Margin = new Thickness(0, 0, 20, 0),
-                    }),
-                    (btnClose = new TextureButton
-                    {
-                        StyleClasses = {DefaultWindow.StyleClassWindowCloseButton},
-                        VerticalAlignment = VAlignment.Center
-                    })
-                }
-            };
-
-            var middle = new PanelContainer
-            {
-                PanelOverride = new StyleBoxFlat {BackgroundColor = Color.FromHex("#202025")},
-                Children =
+                    Text = uidName,
+                    FontOverride = font,
+                    FontColorOverride = StyleNano.NanoGold,
+                    VerticalAlignment = VAlignment.Center,
+                    HorizontalExpand = true,
+                    HorizontalAlignment = HAlignment.Left,
+                    Margin = new Thickness(0, 0, 20, 0),
+                }),
+                (btnClose = new TextureButton
                 {
-                    (_contentContainer = new BoxContainer
-                    {
-                        Orientation = LayoutOrientation.Vertical,
-                        Margin = new Thickness(8, 4),
-                    })
-                }
-            };
-
-            _topContainer.AddChild(topRow);
-            _topContainer.AddChild(new PanelContainer
-            {
-                MinSize = new Vector2(0, 2),
-                PanelOverride = new StyleBoxFlat {BackgroundColor = Color.FromHex("#525252ff")}
-            });
-            _topContainer.AddChild(middle);
-            _topContainer.AddChild(new PanelContainer
+                    StyleClasses = {DefaultWindow.StyleClassWindowCloseButton},
+                    VerticalAlignment = VAlignment.Center
+                })
+            }
+        };
+
+        var middle = new PanelContainer
+        {
+            PanelOverride = new StyleBoxFlat { BackgroundColor = Color.FromHex("#202025") },
+            Children =
             {
-                MinSize = new Vector2(0, 2),
-                PanelOverride = new StyleBoxFlat {BackgroundColor = Color.FromHex("#525252ff")}
-            });
+                (contentContainer = new BoxContainer
+                {
+                    Orientation = LayoutOrientation.Vertical,
+                    Margin = new Thickness(8, 4),
+                })
+            }
+        };
 
+        topContainer.AddChild(topRow);
+        topContainer.AddChild(new PanelContainer
+        {
+            MinSize = new Vector2(0, 2),
+            PanelOverride = new StyleBoxFlat { BackgroundColor = Color.FromHex("#525252ff") }
+        });
+        topContainer.AddChild(middle);
+        topContainer.AddChild(new PanelContainer
+        {
+            MinSize = new Vector2(0, 2),
+            PanelOverride = new StyleBoxFlat { BackgroundColor = Color.FromHex("#525252ff") }
+        });
 
-            _lblPressure = new RichTextLabel();
-            _contentContainer.AddChild(_lblPressure);
 
-            //internals
-            _lblInternals = new RichTextLabel
-                {MinSize = new Vector2(200, 0), VerticalAlignment = VAlignment.Center};
-            _btnInternals = new Button {Text = Loc.GetString("gas-tank-window-internals-toggle-button") };
+        _lblPressure = new RichTextLabel();
+        contentContainer.AddChild(_lblPressure);
 
-            _contentContainer.AddChild(
-                new BoxContainer
-                {
-                    Orientation = LayoutOrientation.Horizontal,
-                    Margin = new Thickness(0, 7, 0, 0),
-                    Children = {_lblInternals, _btnInternals}
-                });
+        //internals
+        _lblInternals = new RichTextLabel
+            { MinSize = new Vector2(200, 0), VerticalAlignment = VAlignment.Center };
+        _btnInternals = new Button { Text = Loc.GetString("gas-tank-window-internals-toggle-button") };
 
-            // Separator
-            _contentContainer.AddChild(new Control
+        contentContainer.AddChild(
+            new BoxContainer
             {
-                MinSize = new Vector2(0, 10)
-            });
-
-            _contentContainer.AddChild(new Label
-            {
-                Text = Loc.GetString("gas-tank-window-output-pressure-label"),
-                Align = Label.AlignMode.Center
+                Orientation = LayoutOrientation.Horizontal,
+                Margin = new Thickness(0, 7, 0, 0),
+                Children = { _lblInternals, _btnInternals }
             });
-            _spbPressure = new FloatSpinBox
-            {
-                IsValid = f => f >= 0 || f <= 3000,
-                Margin = new Thickness(25, 0, 25, 7)
-            };
-            _contentContainer.AddChild(_spbPressure);
-
-            // Handlers
-            _spbPressure.OnValueChanged += args =>
-            {
-                _owner.SetOutputPressure(args.Value);
-            };
 
-            _btnInternals.OnPressed += args =>
-            {
-                _owner.ToggleInternals();
-            };
+        // Separator
+        contentContainer.AddChild(new Control
+        {
+            MinSize = new Vector2(0, 10)
+        });
 
-            btnClose.OnPressed += _ => Close();
-        }
+        contentContainer.AddChild(new Label
+        {
+            Text = Loc.GetString("gas-tank-window-output-pressure-label"),
+            Align = Label.AlignMode.Center
+        });
+        _spbPressure = new FloatSpinBox
+        {
+            IsValid = f => f >= 0 || f <= 3000,
+            Margin = new Thickness(25, 0, 25, 7)
+        };
+        contentContainer.AddChild(_spbPressure);
 
-        public void UpdateState(GasTankBoundUserInterfaceState state)
+        // Handlers
+        _spbPressure.OnValueChanged += args =>
         {
-            _lblPressure.SetMarkup(Loc.GetString("gas-tank-window-tank-pressure-text", ("tankPressure", $"{state.TankPressure:0.##}")));
-            _btnInternals.Disabled = !state.CanConnectInternals;
-            _lblInternals.SetMarkup(Loc.GetString("gas-tank-window-internal-text",
-                ("status", Loc.GetString(state.InternalsConnected ? "gas-tank-window-internal-connected" : "gas-tank-window-internal-disconnected"))));
-            if (state.OutputPressure.HasValue)
-            {
-                _spbPressure.Value = state.OutputPressure.Value;
-            }
-        }
+            owner.SetOutputPressure(args.Value);
+        };
 
-        protected override DragMode GetDragModeFor(Vector2 relativeMousePos)
+        _btnInternals.OnPressed += args =>
         {
-            return DragMode.Move;
-        }
+            owner.ToggleInternals();
+        };
 
-        protected override bool HasPoint(Vector2 point)
+        btnClose.OnPressed += _ => Close();
+    }
+
+    public void UpdateState(GasTankBoundUserInterfaceState state)
+    {
+        _lblPressure.SetMarkup(Loc.GetString("gas-tank-window-tank-pressure-text", ("tankPressure", $"{state.TankPressure:0.##}")));
+        _btnInternals.Disabled = !state.CanConnectInternals;
+        _lblInternals.SetMarkup(Loc.GetString("gas-tank-window-internal-text",
+            ("status", Loc.GetString(state.InternalsConnected ? "gas-tank-window-internal-connected" : "gas-tank-window-internal-disconnected"))));
+        if (state.OutputPressure.HasValue)
         {
-            return false;
+            _spbPressure.Value = state.OutputPressure.Value;
         }
     }
+
+    protected override DragMode GetDragModeFor(Vector2 relativeMousePos)
+    {
+        return DragMode.Move;
+    }
+
+    protected override bool HasPoint(Vector2 point)
+    {
+        return false;
+    }
 }
index ae10d5630c1284c8b960009d51638b65e334d981..1f2d8f1e9f8dc2deac310a41c8c91403a65da4f7 100644 (file)
@@ -14,7 +14,6 @@ comp-gas-tank-examine-closed-valve = Gas release valve is [color=green]closed[/c
 control-verb-open-control-panel-text = Open Control Panel
 
 ## UI
-gas-tank-window-label = Gas Tank
 gas-tank-window-internals-toggle-button = Toggle
 gas-tank-window-output-pressure-label = Output Pressure
 gas-tank-window-tank-pressure-text = Pressure: {$tankPressure} kPA