From c3980766204a9fda323127f45db3bb0d493f28b4 Mon Sep 17 00:00:00 2001 From: TemporalOroboros Date: Sun, 5 Feb 2023 10:33:29 -0800 Subject: [PATCH] Resolve ClustergrenadeVisualizer is Obsolete (#13890) --- .../Explosion/ClusterGrenadeVisualizer.cs | 34 ------------------- .../ClusterGrenadeVisualizerSystem.cs | 16 +++++++++ .../ClusterGrenadeVisualsComponent.cs | 9 +++++ .../Objects/Weapons/Throwable/clusterbang.yml | 5 ++- 4 files changed, 27 insertions(+), 37 deletions(-) delete mode 100644 Content.Client/Explosion/ClusterGrenadeVisualizer.cs create mode 100644 Content.Client/Explosion/ClusterGrenadeVisualizerSystem.cs create mode 100644 Content.Client/Explosion/ClusterGrenadeVisualsComponent.cs diff --git a/Content.Client/Explosion/ClusterGrenadeVisualizer.cs b/Content.Client/Explosion/ClusterGrenadeVisualizer.cs deleted file mode 100644 index ace76bb5de..0000000000 --- a/Content.Client/Explosion/ClusterGrenadeVisualizer.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Content.Shared.Explosion; -using JetBrains.Annotations; -using Robust.Client.GameObjects; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Serialization.Manager.Attributes; - -namespace Content.Client.Explosion -{ - [UsedImplicitly] - // ReSharper disable once InconsistentNaming - public sealed class ClusterGrenadeVisualizer : AppearanceVisualizer - { - [DataField("state")] - private string? _state; - - [Obsolete("Subscribe to AppearanceChangeEvent instead.")] - public override void OnChangeData(AppearanceComponent component) - { - base.OnChangeData(component); - - var entities = IoCManager.Resolve(); - if (!entities.TryGetComponent(component.Owner, out var sprite)) - { - return; - } - - if (component.TryGetData(ClusterGrenadeVisuals.GrenadesCounter, out int grenadesCounter)) - { - sprite.LayerSetState(0, $"{_state}-{grenadesCounter}"); - } - } - } -} diff --git a/Content.Client/Explosion/ClusterGrenadeVisualizerSystem.cs b/Content.Client/Explosion/ClusterGrenadeVisualizerSystem.cs new file mode 100644 index 0000000000..1e35cb6b59 --- /dev/null +++ b/Content.Client/Explosion/ClusterGrenadeVisualizerSystem.cs @@ -0,0 +1,16 @@ +using Content.Shared.Explosion; +using Robust.Client.GameObjects; + +namespace Content.Client.Explosion; + +public sealed class ClusterGrenadeVisualizerSystem : VisualizerSystem +{ + protected override void OnAppearanceChange(EntityUid uid, ClusterGrenadeVisualsComponent comp, ref AppearanceChangeEvent args) + { + if (args.Sprite == null) + return; + + if (AppearanceSystem.TryGetData(uid, ClusterGrenadeVisuals.GrenadesCounter, out var grenadesCounter, args.Component)) + args.Sprite.LayerSetState(0, $"{comp.State}-{grenadesCounter}"); + } +} diff --git a/Content.Client/Explosion/ClusterGrenadeVisualsComponent.cs b/Content.Client/Explosion/ClusterGrenadeVisualsComponent.cs new file mode 100644 index 0000000000..df04358c58 --- /dev/null +++ b/Content.Client/Explosion/ClusterGrenadeVisualsComponent.cs @@ -0,0 +1,9 @@ +namespace Content.Client.Explosion; + +[RegisterComponent] +[Access(typeof(ClusterGrenadeVisualizerSystem))] +public sealed class ClusterGrenadeVisualsComponent : Component +{ + [DataField("state")] + public string? State; +} diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml index b2a17e1dd2..794ab0a4b2 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml @@ -9,9 +9,8 @@ netsync: false state: base-0 - type: Appearance - visuals: - - type: ClusterGrenadeVisualizer - state: base + - type: ClusterGrenadeVisuals + state: base - type: ClusterGrenade - type: ContainerContainer containers: