]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Resolve ClustergrenadeVisualizer is Obsolete (#13890)
authorTemporalOroboros <TemporalOroboros@gmail.com>
Sun, 5 Feb 2023 18:33:29 +0000 (10:33 -0800)
committerGitHub <noreply@github.com>
Sun, 5 Feb 2023 18:33:29 +0000 (14:33 -0400)
Content.Client/Explosion/ClusterGrenadeVisualizer.cs [deleted file]
Content.Client/Explosion/ClusterGrenadeVisualizerSystem.cs [new file with mode: 0644]
Content.Client/Explosion/ClusterGrenadeVisualsComponent.cs [new file with mode: 0644]
Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml

diff --git a/Content.Client/Explosion/ClusterGrenadeVisualizer.cs b/Content.Client/Explosion/ClusterGrenadeVisualizer.cs
deleted file mode 100644 (file)
index ace76bb..0000000
+++ /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<IEntityManager>();
-            if (!entities.TryGetComponent<SpriteComponent>(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 (file)
index 0000000..1e35cb6
--- /dev/null
@@ -0,0 +1,16 @@
+using Content.Shared.Explosion;
+using Robust.Client.GameObjects;
+
+namespace Content.Client.Explosion;
+
+public sealed class ClusterGrenadeVisualizerSystem : VisualizerSystem<ClusterGrenadeVisualsComponent>
+{
+    protected override void OnAppearanceChange(EntityUid uid, ClusterGrenadeVisualsComponent comp, ref AppearanceChangeEvent args)
+    {
+        if (args.Sprite == null)
+            return;
+
+        if (AppearanceSystem.TryGetData<int>(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 (file)
index 0000000..df04358
--- /dev/null
@@ -0,0 +1,9 @@
+namespace Content.Client.Explosion;
+
+[RegisterComponent]
+[Access(typeof(ClusterGrenadeVisualizerSystem))]
+public sealed class ClusterGrenadeVisualsComponent : Component
+{
+    [DataField("state")]
+    public string? State;
+}
index b2a17e1dd2cabbda10579206aecca4a2d781e747..794ab0a4b29aee7044ddac561ca44ad6b480bab2 100644 (file)
@@ -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: