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;