From 29ff52308110538a3fd65dc6453d6a08efced5db Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Sun, 13 Feb 2022 11:18:18 +1300 Subject: [PATCH] Remove stack item status flicker (#6613) --- Content.Client/Atmos/Components/GasAnalyzerComponent.cs | 7 ++++++- .../Chemistry/Components/HyposprayComponent.cs | 7 ++++++- Content.Client/Chemistry/Components/InjectorComponent.cs | 6 +++++- Content.Client/Stack/StackComponent.cs | 9 ++------- Content.Client/Tools/Components/MultipleToolComponent.cs | 6 +++++- Content.Client/Tools/Components/WelderComponent.cs | 6 +++++- 6 files changed, 29 insertions(+), 12 deletions(-) diff --git a/Content.Client/Atmos/Components/GasAnalyzerComponent.cs b/Content.Client/Atmos/Components/GasAnalyzerComponent.cs index bb5ee4e7bd..d6a4aee4ff 100644 --- a/Content.Client/Atmos/Components/GasAnalyzerComponent.cs +++ b/Content.Client/Atmos/Components/GasAnalyzerComponent.cs @@ -43,7 +43,7 @@ namespace Content.Client.Atmos.Components _label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } }; AddChild(_label); - parent._uiUpdateNeeded = true; + Update(); } /// @@ -56,6 +56,11 @@ namespace Content.Client.Atmos.Components return; } + Update(); + } + + public void Update() + { _parent._uiUpdateNeeded = false; var color = _parent.Danger switch diff --git a/Content.Client/Chemistry/Components/HyposprayComponent.cs b/Content.Client/Chemistry/Components/HyposprayComponent.cs index 51be06e5c2..3756497bc4 100644 --- a/Content.Client/Chemistry/Components/HyposprayComponent.cs +++ b/Content.Client/Chemistry/Components/HyposprayComponent.cs @@ -46,7 +46,7 @@ namespace Content.Client.Chemistry.Components _label = new RichTextLabel {StyleClasses = {StyleNano.StyleClassItemStatus}}; AddChild(_label); - parent._uiUpdateNeeded = true; + Update(); } /// @@ -57,6 +57,11 @@ namespace Content.Client.Chemistry.Components { return; } + Update(); + } + + public void Update() + { _parent._uiUpdateNeeded = false; diff --git a/Content.Client/Chemistry/Components/InjectorComponent.cs b/Content.Client/Chemistry/Components/InjectorComponent.cs index cfc911d2d6..99bab0793a 100644 --- a/Content.Client/Chemistry/Components/InjectorComponent.cs +++ b/Content.Client/Chemistry/Components/InjectorComponent.cs @@ -56,7 +56,7 @@ namespace Content.Client.Chemistry.Components _label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } }; AddChild(_label); - parent._uiUpdateNeeded = true; + Update(); } protected override void FrameUpdate(FrameEventArgs args) @@ -66,7 +66,11 @@ namespace Content.Client.Chemistry.Components { return; } + Update(); + } + public void Update() + { _parent._uiUpdateNeeded = false; //Update current volume and injector state diff --git a/Content.Client/Stack/StackComponent.cs b/Content.Client/Stack/StackComponent.cs index 7dc4e9a880..9f0b8e803e 100644 --- a/Content.Client/Stack/StackComponent.cs +++ b/Content.Client/Stack/StackComponent.cs @@ -4,17 +4,13 @@ using Content.Client.Stylesheets; using Content.Shared.Stacks; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; -using Robust.Shared.Analyzers; -using Robust.Shared.GameObjects; -using Robust.Shared.Localization; using Robust.Shared.Timing; -using Robust.Shared.ViewVariables; namespace Content.Client.Stack { [RegisterComponent, Friend(typeof(StackSystem), typeof(StatusControl))] [ComponentReference(typeof(SharedStackComponent))] - public class StackComponent : SharedStackComponent, IItemStatus + public sealed class StackComponent : SharedStackComponent, IItemStatus { [ViewVariables] public bool UiUpdateNeeded { get; set; } @@ -33,9 +29,8 @@ namespace Content.Client.Stack { _parent = parent; _label = new RichTextLabel {StyleClasses = {StyleNano.StyleClassItemStatus}}; + _label.SetMarkup(Loc.GetString("comp-stack-status", ("count", _parent.Count))); AddChild(_label); - - parent.UiUpdateNeeded = true; } protected override void FrameUpdate(FrameEventArgs args) diff --git a/Content.Client/Tools/Components/MultipleToolComponent.cs b/Content.Client/Tools/Components/MultipleToolComponent.cs index e689a414e3..abd8e3a213 100644 --- a/Content.Client/Tools/Components/MultipleToolComponent.cs +++ b/Content.Client/Tools/Components/MultipleToolComponent.cs @@ -47,7 +47,7 @@ namespace Content.Client.Tools.Components _label = new RichTextLabel {StyleClasses = {StyleNano.StyleClassItemStatus}}; AddChild(_label); - parent._uiUpdateNeeded = true; + UpdateDraw(); } protected override void FrameUpdate(FrameEventArgs args) @@ -58,7 +58,11 @@ namespace Content.Client.Tools.Components { return; } + Update(); + } + public void Update() + { _parent._uiUpdateNeeded = false; _label.SetMarkup(_parent.StatusShowBehavior ? _parent.Behavior ?? string.Empty : string.Empty); diff --git a/Content.Client/Tools/Components/WelderComponent.cs b/Content.Client/Tools/Components/WelderComponent.cs index ef9f89e9d0..65e883caf6 100644 --- a/Content.Client/Tools/Components/WelderComponent.cs +++ b/Content.Client/Tools/Components/WelderComponent.cs @@ -38,7 +38,7 @@ namespace Content.Client.Tools.Components _label = new RichTextLabel {StyleClasses = {StyleNano.StyleClassItemStatus}}; AddChild(_label); - parent.UiUpdateNeeded = true; + UpdateDraw(); } /// @@ -50,7 +50,11 @@ namespace Content.Client.Tools.Components { return; } + Update(); + } + public void Update() + { _parent.UiUpdateNeeded = false; var fuelCap = _parent.FuelCapacity;