diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs index 3eb38296f6..5891d64d4d 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs @@ -14,6 +14,7 @@ public sealed partial class AtmosphereSystem private void InitializeGridAtmosphere() { SubscribeLocalEvent(OnGridAtmosphereInit); + SubscribeLocalEvent(OnAtmosphereRemove); SubscribeLocalEvent(OnGridSplit); #region Atmos API Subscriptions @@ -42,6 +43,19 @@ public sealed partial class AtmosphereSystem #endregion } + private void OnAtmosphereRemove(EntityUid uid, GridAtmosphereComponent component, ComponentRemove args) + { + for (var i = 0; i < _currentRunAtmosphere.Count; i++) + { + if (_currentRunAtmosphere[i].Owner != uid) + continue; + + _currentRunAtmosphere.RemoveAt(i); + if (_currentRunAtmosphereIndex >= i) + _currentRunAtmosphereIndex--; + } + } + private void OnGridAtmosphereInit(EntityUid uid, GridAtmosphereComponent gridAtmosphere, ComponentInit args) { base.Initialize();