Make ReactionResults an array (#34967)
* Make ReactionResults an array We're making the dictionaries fixed-size anyway. Alternatively could use a frozendictionary but not sure on the perf difference. Worst case whoever adds another reactionresult makes a minor adjustment * apply conventions --------- Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
This commit is contained in:
@@ -178,7 +178,7 @@ namespace Content.Server.Atmos.EntitySystems
|
|||||||
|
|
||||||
if (tile.Hotspot.Bypassing)
|
if (tile.Hotspot.Bypassing)
|
||||||
{
|
{
|
||||||
tile.Hotspot.Volume = tile.Air.ReactionResults[GasReaction.Fire] * Atmospherics.FireGrowthRate;
|
tile.Hotspot.Volume = tile.Air.ReactionResults[(byte)GasReaction.Fire] * Atmospherics.FireGrowthRate;
|
||||||
tile.Hotspot.Temperature = tile.Air.Temperature;
|
tile.Hotspot.Temperature = tile.Air.Temperature;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -187,7 +187,7 @@ namespace Content.Server.Atmos.EntitySystems
|
|||||||
affected.Temperature = tile.Hotspot.Temperature;
|
affected.Temperature = tile.Hotspot.Temperature;
|
||||||
React(affected, tile);
|
React(affected, tile);
|
||||||
tile.Hotspot.Temperature = affected.Temperature;
|
tile.Hotspot.Temperature = affected.Temperature;
|
||||||
tile.Hotspot.Volume = affected.ReactionResults[GasReaction.Fire] * Atmospherics.FireGrowthRate;
|
tile.Hotspot.Volume = affected.ReactionResults[(byte)GasReaction.Fire] * Atmospherics.FireGrowthRate;
|
||||||
Merge(tile.Air, affected);
|
Merge(tile.Air, affected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace Content.Server.Atmos.Reactions
|
|||||||
var oldHeatCapacity = atmosphereSystem.GetHeatCapacity(mixture, true);
|
var oldHeatCapacity = atmosphereSystem.GetHeatCapacity(mixture, true);
|
||||||
var temperature = mixture.Temperature;
|
var temperature = mixture.Temperature;
|
||||||
var location = holder as TileAtmosphere;
|
var location = holder as TileAtmosphere;
|
||||||
mixture.ReactionResults[GasReaction.Fire] = 0;
|
mixture.ReactionResults[(byte)GasReaction.Fire] = 0;
|
||||||
|
|
||||||
// More plasma released at higher temperatures.
|
// More plasma released at higher temperatures.
|
||||||
var temperatureScale = 0f;
|
var temperatureScale = 0f;
|
||||||
@@ -60,7 +60,7 @@ namespace Content.Server.Atmos.Reactions
|
|||||||
|
|
||||||
energyReleased += Atmospherics.FirePlasmaEnergyReleased * plasmaBurnRate;
|
energyReleased += Atmospherics.FirePlasmaEnergyReleased * plasmaBurnRate;
|
||||||
energyReleased /= heatScale; // adjust energy to make sure speedup doesn't cause mega temperature rise
|
energyReleased /= heatScale; // adjust energy to make sure speedup doesn't cause mega temperature rise
|
||||||
mixture.ReactionResults[GasReaction.Fire] += plasmaBurnRate * (1 + oxygenBurnRate);
|
mixture.ReactionResults[(byte)GasReaction.Fire] += plasmaBurnRate * (1 + oxygenBurnRate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ namespace Content.Server.Atmos.Reactions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return mixture.ReactionResults[GasReaction.Fire] != 0 ? ReactionResult.Reacting : ReactionResult.NoReaction;
|
return mixture.ReactionResults[(byte)GasReaction.Fire] != 0 ? ReactionResult.Reacting : ReactionResult.NoReaction;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace Content.Server.Atmos.Reactions
|
|||||||
var oldHeatCapacity = atmosphereSystem.GetHeatCapacity(mixture, true);
|
var oldHeatCapacity = atmosphereSystem.GetHeatCapacity(mixture, true);
|
||||||
var temperature = mixture.Temperature;
|
var temperature = mixture.Temperature;
|
||||||
var location = holder as TileAtmosphere;
|
var location = holder as TileAtmosphere;
|
||||||
mixture.ReactionResults[GasReaction.Fire] = 0f;
|
mixture.ReactionResults[(byte)GasReaction.Fire] = 0f;
|
||||||
var burnedFuel = 0f;
|
var burnedFuel = 0f;
|
||||||
var initialTrit = mixture.GetMoles(Gas.Tritium);
|
var initialTrit = mixture.GetMoles(Gas.Tritium);
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ namespace Content.Server.Atmos.Reactions
|
|||||||
// Conservation of mass is important.
|
// Conservation of mass is important.
|
||||||
mixture.AdjustMoles(Gas.WaterVapor, burnedFuel);
|
mixture.AdjustMoles(Gas.WaterVapor, burnedFuel);
|
||||||
|
|
||||||
mixture.ReactionResults[GasReaction.Fire] += burnedFuel;
|
mixture.ReactionResults[(byte)GasReaction.Fire] += burnedFuel;
|
||||||
}
|
}
|
||||||
|
|
||||||
energyReleased /= heatScale; // adjust energy to make sure speedup doesn't cause mega temperature rise
|
energyReleased /= heatScale; // adjust energy to make sure speedup doesn't cause mega temperature rise
|
||||||
@@ -65,7 +65,7 @@ namespace Content.Server.Atmos.Reactions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return mixture.ReactionResults[GasReaction.Fire] != 0 ? ReactionResult.Reacting : ReactionResult.NoReaction;
|
return mixture.ReactionResults[(byte)GasReaction.Fire] != 0 ? ReactionResult.Reacting : ReactionResult.NoReaction;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,10 +33,9 @@ namespace Content.Shared.Atmos
|
|||||||
public bool Immutable { get; private set; }
|
public bool Immutable { get; private set; }
|
||||||
|
|
||||||
[ViewVariables]
|
[ViewVariables]
|
||||||
public readonly Dictionary<GasReaction, float> ReactionResults = new()
|
public readonly float[] ReactionResults =
|
||||||
{
|
{
|
||||||
// We initialize the dictionary here.
|
0f,
|
||||||
{ GasReaction.Fire, 0f }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
[ViewVariables]
|
[ViewVariables]
|
||||||
|
|||||||
Reference in New Issue
Block a user