From 7fa10bd17bbb9d063625eb65705fd4119c52829b Mon Sep 17 00:00:00 2001 From: Vera Aguilera Puerto Date: Mon, 26 Jul 2021 11:05:43 +0200 Subject: [PATCH] Remove atmos archiving. --- .../EntitySystems/AtmosphereSystem.Gases.cs | 25 +++++++------------ .../EntitySystems/AtmosphereSystem.LINDA.cs | 11 -------- .../AtmosphereSystem.Superconductivity.cs | 9 ++----- Content.Server/Atmos/GasMixture.cs | 21 ---------------- Content.Server/Atmos/TileAtmosphere.cs | 6 ----- 5 files changed, 11 insertions(+), 61 deletions(-) diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs index ba11dd0740..16469a0a58 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs @@ -42,13 +42,6 @@ namespace Content.Server.Atmos.EntitySystems return MathF.Max(NumericsHelpers.HorizontalAdd(tmp), Atmospherics.MinimumHeatCapacity); } - public float GetHeatCapacityArchived(GasMixture mixture) - { - Span tmp = stackalloc float[mixture.Moles.Length]; - NumericsHelpers.Multiply(mixture.MolesArchived, GasSpecificHeats, tmp); - return MathF.Max(NumericsHelpers.HorizontalAdd(tmp), Atmospherics.MinimumHeatCapacity); - } - public float GetThermalEnergy(GasMixture mixture) { return mixture.Temperature * GetHeatCapacity(mixture); @@ -79,7 +72,7 @@ namespace Content.Server.Atmos.EntitySystems public float Share(GasMixture receiver, GasMixture sharer, int atmosAdjacentTurfs) { - var temperatureDelta = receiver.TemperatureArchived - sharer.TemperatureArchived; + var temperatureDelta = receiver.Temperature - sharer.Temperature; var absTemperatureDelta = Math.Abs(temperatureDelta); var oldHeatCapacity = 0f; var oldSharerHeatCapacity = 0f; @@ -130,12 +123,12 @@ namespace Content.Server.Atmos.EntitySystems // Transfer of thermal energy (via changed heat capacity) between self and sharer. if (!receiver.Immutable && newHeatCapacity > Atmospherics.MinimumHeatCapacity) { - receiver.Temperature = ((oldHeatCapacity * receiver.Temperature) - (heatCapacityToSharer * receiver.TemperatureArchived) + (heatCapacitySharerToThis * sharer.TemperatureArchived)) / newHeatCapacity; + receiver.Temperature = ((oldHeatCapacity * receiver.Temperature) - (heatCapacityToSharer * receiver.Temperature) + (heatCapacitySharerToThis * sharer.Temperature)) / newHeatCapacity; } if (!sharer.Immutable && newSharerHeatCapacity > Atmospherics.MinimumHeatCapacity) { - sharer.Temperature = ((oldSharerHeatCapacity * sharer.Temperature) - (heatCapacitySharerToThis * sharer.TemperatureArchived) + (heatCapacityToSharer*receiver.TemperatureArchived)) / newSharerHeatCapacity; + sharer.Temperature = ((oldSharerHeatCapacity * sharer.Temperature) - (heatCapacitySharerToThis * sharer.Temperature) + (heatCapacityToSharer*receiver.Temperature)) / newSharerHeatCapacity; } // Thermal energy of the system (self and sharer) is unchanged. @@ -154,17 +147,17 @@ namespace Content.Server.Atmos.EntitySystems var moles = receiver.TotalMoles; var theirMoles = sharer.TotalMoles; - return (receiver.TemperatureArchived * (moles + movedMoles)) - (sharer.TemperatureArchived * (theirMoles - movedMoles)) * Atmospherics.R / receiver.Volume; + return (receiver.Temperature * (moles + movedMoles)) - (sharer.Temperature * (theirMoles - movedMoles)) * Atmospherics.R / receiver.Volume; } public float TemperatureShare(GasMixture receiver, GasMixture sharer, float conductionCoefficient) { - var temperatureDelta = receiver.TemperatureArchived - sharer.TemperatureArchived; + var temperatureDelta = receiver.Temperature - sharer.Temperature; if (MathF.Abs(temperatureDelta) > Atmospherics.MinimumTemperatureDeltaToConsider) { - var heatCapacity = GetHeatCapacityArchived(receiver); - var sharerHeatCapacity = GetHeatCapacityArchived(sharer); + var heatCapacity = GetHeatCapacity(receiver); + var sharerHeatCapacity = GetHeatCapacity(sharer); if (sharerHeatCapacity > Atmospherics.MinimumHeatCapacity && heatCapacity > Atmospherics.MinimumHeatCapacity) { @@ -183,10 +176,10 @@ namespace Content.Server.Atmos.EntitySystems public float TemperatureShare(GasMixture receiver, float conductionCoefficient, float sharerTemperature, float sharerHeatCapacity) { - var temperatureDelta = receiver.TemperatureArchived - sharerTemperature; + var temperatureDelta = receiver.Temperature - sharerTemperature; if (MathF.Abs(temperatureDelta) > Atmospherics.MinimumTemperatureDeltaToConsider) { - var heatCapacity = GetHeatCapacityArchived(receiver); + var heatCapacity = GetHeatCapacity(receiver); if (sharerHeatCapacity > Atmospherics.MinimumHeatCapacity && heatCapacity > Atmospherics.MinimumHeatCapacity) { diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.LINDA.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.LINDA.cs index 93b73458b1..12c7179a45 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.LINDA.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.LINDA.cs @@ -16,9 +16,6 @@ namespace Content.Server.Atmos.EntitySystems return; } - if (tile.ArchivedCycle < fireCount) - Archive(tile, fireCount); - tile.CurrentCycle = fireCount; var adjacentTileLength = 0; @@ -38,7 +35,6 @@ namespace Content.Server.Atmos.EntitySystems // If the tile is null or has no air, we don't do anything for it. if(enemyTile?.Air == null) continue; if (fireCount <= enemyTile.CurrentCycle) continue; - Archive(enemyTile, fireCount); var shouldShareAir = false; @@ -110,13 +106,6 @@ namespace Content.Server.Atmos.EntitySystems RemoveActiveTile(gridAtmosphere, tile); } - private void Archive(TileAtmosphere tile, int fireCount) - { - tile.Air?.Archive(); - tile.ArchivedCycle = fireCount; - tile.TemperatureArchived = tile.Temperature; - } - private void LastShareCheck(TileAtmosphere tile) { if (tile.Air == null || tile.ExcitedGroup == null) diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Superconductivity.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Superconductivity.cs index 2853a6934e..fe21db69d4 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Superconductivity.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Superconductivity.cs @@ -21,9 +21,6 @@ namespace Content.Server.Atmos.EntitySystems if (adjacent == null || adjacent.ThermalConductivity == 0f) continue; - if(adjacent.ArchivedCycle < gridAtmosphere.UpdateCounter) - Archive(adjacent, gridAtmosphere.UpdateCounter); - NeighborConductWithSource(gridAtmosphere, adjacent, tile); ConsiderSuperconductivity(gridAtmosphere, adjacent); @@ -37,8 +34,6 @@ namespace Content.Server.Atmos.EntitySystems { if(tile.Air == null) { - if(tile.ArchivedCycle < gridAtmosphere.UpdateCounter) - Archive(tile, gridAtmosphere.UpdateCounter); return AtmosDirection.All; } @@ -128,7 +123,7 @@ namespace Content.Server.Atmos.EntitySystems private void TemperatureShareMutualSolid(TileAtmosphere tile, TileAtmosphere other, float conductionCoefficient) { - var deltaTemperature = (tile.TemperatureArchived - other.TemperatureArchived); + var deltaTemperature = (tile.Temperature - other.Temperature); if (MathF.Abs(deltaTemperature) > Atmospherics.MinimumTemperatureDeltaToConsider && tile.HeatCapacity != 0f && other.HeatCapacity != 0f) { @@ -146,7 +141,7 @@ namespace Content.Server.Atmos.EntitySystems if (tile.Temperature > Atmospherics.T0C) { // Hardcoded space temperature. - var deltaTemperature = (tile.TemperatureArchived - Atmospherics.TCMB); + var deltaTemperature = (tile.Temperature - Atmospherics.TCMB); if ((tile.HeatCapacity > 0) && (MathF.Abs(deltaTemperature) > Atmospherics.MinimumTemperatureDeltaToConsider)) { var heat = tile.ThermalConductivity * deltaTemperature * (tile.HeatCapacity * diff --git a/Content.Server/Atmos/GasMixture.cs b/Content.Server/Atmos/GasMixture.cs index dddad7366f..f4d013b2ab 100644 --- a/Content.Server/Atmos/GasMixture.cs +++ b/Content.Server/Atmos/GasMixture.cs @@ -26,9 +26,6 @@ namespace Content.Server.Atmos [DataField("moles")] [ViewVariables] public float[] Moles = new float[Atmospherics.AdjustedNumberOfGases]; - [DataField("molesArchived")] [ViewVariables] - public float[] MolesArchived = new float[Atmospherics.AdjustedNumberOfGases]; - [DataField("temperature")] [ViewVariables] private float _temperature = Atmospherics.TCMB; @@ -73,9 +70,6 @@ namespace Content.Server.Atmos } } - [DataField("temperatureArchived")] [ViewVariables] - public float TemperatureArchived { get; private set; } - [DataField("volume")] [ViewVariables] public float Volume { get; set; } @@ -96,13 +90,6 @@ namespace Content.Server.Atmos Immutable = true; } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void Archive() - { - Moles.AsSpan().CopyTo(MolesArchived.AsSpan()); - TemperatureArchived = Temperature; - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public float GetMoles(int gasId) { @@ -253,7 +240,6 @@ namespace Content.Server.Atmos { // The arrays MUST have a specific length. Array.Resize(ref Moles, Atmospherics.AdjustedNumberOfGases); - Array.Resize(ref MolesArchived, Atmospherics.AdjustedNumberOfGases); } public override bool Equals(object? obj) @@ -268,12 +254,10 @@ namespace Content.Server.Atmos if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return Moles.SequenceEqual(other.Moles) - && MolesArchived.SequenceEqual(other.MolesArchived) && _temperature.Equals(other._temperature) && ReactionResults.SequenceEqual(other.ReactionResults) && Immutable == other.Immutable && LastShare.Equals(other.LastShare) - && TemperatureArchived.Equals(other.TemperatureArchived) && Volume.Equals(other.Volume); } @@ -284,13 +268,10 @@ namespace Content.Server.Atmos for (var i = 0; i < Atmospherics.TotalNumberOfGases; i++) { var moles = Moles[i]; - var molesArchived = MolesArchived[i]; hashCode.Add(moles); - hashCode.Add(molesArchived); } hashCode.Add(_temperature); - hashCode.Add(TemperatureArchived); hashCode.Add(Immutable); hashCode.Add(LastShare); hashCode.Add(Volume); @@ -303,11 +284,9 @@ namespace Content.Server.Atmos var newMixture = new GasMixture() { Moles = (float[])Moles.Clone(), - MolesArchived = (float[])MolesArchived.Clone(), _temperature = _temperature, Immutable = Immutable, LastShare = LastShare, - TemperatureArchived = TemperatureArchived, Volume = Volume, }; return newMixture; diff --git a/Content.Server/Atmos/TileAtmosphere.cs b/Content.Server/Atmos/TileAtmosphere.cs index 5bcfc710b4..b90ced4c02 100644 --- a/Content.Server/Atmos/TileAtmosphere.cs +++ b/Content.Server/Atmos/TileAtmosphere.cs @@ -13,18 +13,12 @@ namespace Content.Server.Atmos /// public class TileAtmosphere : IGasMixtureHolder { - [ViewVariables] - public int ArchivedCycle; - [ViewVariables] public int CurrentCycle; [ViewVariables] public float Temperature { get; set; } = Atmospherics.T20C; - [ViewVariables] - public float TemperatureArchived { get; set; } = Atmospherics.T20C; - [ViewVariables] public TileAtmosphere? PressureSpecificTarget { get; set; }