diff --git a/Content.Server/Atmos/Components/AtmosExposedComponent.cs b/Content.Server/Atmos/Components/AtmosExposedComponent.cs index e742458f10..9be43d8067 100644 --- a/Content.Server/Atmos/Components/AtmosExposedComponent.cs +++ b/Content.Server/Atmos/Components/AtmosExposedComponent.cs @@ -23,23 +23,20 @@ namespace Content.Server.Atmos.Components [ViewVariables] [ComponentDependency] private readonly FlammableComponent? _flammableComponent = null; - public void Update(TileAtmosphere tile, float frameDelta, AtmosphereSystem atmosphereSystem) + public void Update(GasMixture air, float frameDelta, AtmosphereSystem atmosphereSystem) { if (_temperatureComponent != null) { - if (tile.Air != null) - { - var temperatureDelta = tile.Air.Temperature - _temperatureComponent.CurrentTemperature; - var tileHeatCapacity = atmosphereSystem.GetHeatCapacity(tile.Air); - var heat = temperatureDelta * (tileHeatCapacity * _temperatureComponent.HeatCapacity / (tileHeatCapacity + _temperatureComponent.HeatCapacity)); - _temperatureComponent.ReceiveHeat(heat); - } + var temperatureDelta = air.Temperature - _temperatureComponent.CurrentTemperature; + var tileHeatCapacity = atmosphereSystem.GetHeatCapacity(air); + var heat = temperatureDelta * (tileHeatCapacity * _temperatureComponent.HeatCapacity / (tileHeatCapacity + _temperatureComponent.HeatCapacity)); + _temperatureComponent.ReceiveHeat(heat); _temperatureComponent.Update(); } - _barotraumaComponent?.Update(tile.Air?.Pressure ?? 0); + _barotraumaComponent?.Update(air.Pressure); - _flammableComponent?.Update(tile); + _flammableComponent?.Update(air); } } } diff --git a/Content.Server/Atmos/Components/FlammableComponent.cs b/Content.Server/Atmos/Components/FlammableComponent.cs index 99aa2402f8..3cccaba238 100644 --- a/Content.Server/Atmos/Components/FlammableComponent.cs +++ b/Content.Server/Atmos/Components/FlammableComponent.cs @@ -63,7 +63,7 @@ namespace Content.Server.Atmos.Components UpdateAppearance(); } - public void Update(TileAtmosphere tile) + public void Update(GasMixture air) { // Slowly dry ourselves off if wet. if (FireStacks < 0) @@ -104,13 +104,13 @@ namespace Content.Server.Atmos.Components } // If we're in an oxygenless environment, put the fire out. - if (tile.Air?.GetMoles(Gas.Oxygen) < 1f) + if (air.GetMoles(Gas.Oxygen) < 1f) { Extinguish(); return; } - EntitySystem.Get().HotspotExpose(tile.GridIndex, tile.GridIndices, 700f, 50f, true); + EntitySystem.Get().HotspotExpose(Owner.Transform.Coordinates, 700f, 50f, true); var physics = Owner.GetComponent(); diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs index 9f09ce4e41..35e06f437d 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs @@ -670,7 +670,7 @@ namespace Content.Server.Atmos.EntitySystems public GasMixture? GetTileMixture(EntityCoordinates coordinates, bool invalidate = false) { return TryGetGridAndTile(coordinates, out var tuple) - ? GetTileMixture(tuple.Value.Grid, tuple.Value.Tile, invalidate) : null; + ? GetTileMixture(tuple.Value.Grid, tuple.Value.Tile, invalidate) : GasMixture.SpaceGas; } /// diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs index 90d482e39a..966a3192f5 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs @@ -71,7 +71,7 @@ namespace Content.Server.Atmos.EntitySystems foreach (var exposed in EntityManager.ComponentManager.EntityQuery()) { // TODO ATMOS: Kill this with fire. - var tile = GetTileAtmosphereOrCreateSpace(exposed.Owner.Transform.Coordinates); + var tile = GetTileMixture(exposed.Owner.Transform.Coordinates); if (tile == null) continue; exposed.Update(tile, _exposedTimer, this); } diff --git a/Resources/Changelog/Parts/funny_gas.yml b/Resources/Changelog/Parts/funny_gas.yml new file mode 100644 index 0000000000..a2e7209f07 --- /dev/null +++ b/Resources/Changelog/Parts/funny_gas.yml @@ -0,0 +1,4 @@ +author: Zumorica +changes: + - type: Fix + message: Fixes mobs not taking pressure damage on space.