]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix firevisuals layer spam (#14871)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Sun, 26 Mar 2023 13:15:23 +0000 (00:15 +1100)
committerGitHub <noreply@github.com>
Sun, 26 Mar 2023 13:15:23 +0000 (08:15 -0500)
Content.Client/Atmos/EntitySystems/FireVisualizerSystem.cs

index 6f0dba4bd761a1aec9fd129e130dc4d5f1389a59..d2b9bc2316b432459c65e2ef5e4da88ac07500a2 100644 (file)
@@ -27,8 +27,13 @@ public sealed class FireVisualizerSystem : VisualizerSystem<FireVisualsComponent
             component.LightEntity = null;
         }
 
-        if (TryComp<SpriteComponent>(uid, out var sprite))
-            sprite.RemoveLayer(FireVisualLayers.Fire);
+        // Need LayerMapTryGet because Init fails if there's no existing sprite / appearancecomp
+        // which means in some setups (most frequently no AppearanceComp) the layer never exists.
+        if (TryComp<SpriteComponent>(uid, out var sprite) &&
+            sprite.LayerMapTryGet(FireVisualLayers.Fire, out var layer))
+        {
+            sprite.RemoveLayer(layer);
+        }
     }
 
     private void OnComponentInit(EntityUid uid, FireVisualsComponent component, ComponentInit args)