diff --git a/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs b/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs index a27a5045a8..ed9270fdee 100644 --- a/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs +++ b/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs @@ -130,9 +130,17 @@ namespace Content.Server.Atmos.EntitySystems return; } - var changed = oldData.Equals(default) || oldData.FireState != tile.Hotspot.State; + var changed = false; if (oldData.Equals(default)) + { + changed = true; oldData = new GasOverlayData(tile.Hotspot.State, new byte[VisibleGasId.Length]); + } + else if (oldData.FireState != tile.Hotspot.State) + { + changed = true; + oldData = new GasOverlayData(tile.Hotspot.State, oldData.Opacity); + } if (tile.Air != null) { @@ -166,6 +174,14 @@ namespace Content.Server.Atmos.EntitySystems changed = true; } } + else + { + for (var i = 0; i < VisibleGasId.Length; i++) + { + changed |= oldData.Opacity[i] != 0; + oldData.Opacity[i] = 0; + } + } if (!changed) return;