Check for divide by near zero (#22876)
This commit is contained in:
@@ -123,7 +123,7 @@ namespace Content.Server.Atmos.EntitySystems
|
|||||||
var receiverHeatCapacity = GetHeatCapacity(receiver);
|
var receiverHeatCapacity = GetHeatCapacity(receiver);
|
||||||
var giverHeatCapacity = GetHeatCapacity(giver);
|
var giverHeatCapacity = GetHeatCapacity(giver);
|
||||||
var combinedHeatCapacity = receiverHeatCapacity + giverHeatCapacity;
|
var combinedHeatCapacity = receiverHeatCapacity + giverHeatCapacity;
|
||||||
if (combinedHeatCapacity > 0f)
|
if (combinedHeatCapacity > Atmospherics.MinimumHeatCapacity)
|
||||||
{
|
{
|
||||||
receiver.Temperature = (GetThermalEnergy(giver, giverHeatCapacity) + GetThermalEnergy(receiver, receiverHeatCapacity)) / combinedHeatCapacity;
|
receiver.Temperature = (GetThermalEnergy(giver, giverHeatCapacity) + GetThermalEnergy(receiver, receiverHeatCapacity)) / combinedHeatCapacity;
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@ namespace Content.Server.Atmos.EntitySystems
|
|||||||
sourceHeatCapacity ??= GetHeatCapacity(source);
|
sourceHeatCapacity ??= GetHeatCapacity(source);
|
||||||
var receiverHeatCapacity = GetHeatCapacity(receiver);
|
var receiverHeatCapacity = GetHeatCapacity(receiver);
|
||||||
var combinedHeatCapacity = receiverHeatCapacity + sourceHeatCapacity.Value * fraction;
|
var combinedHeatCapacity = receiverHeatCapacity + sourceHeatCapacity.Value * fraction;
|
||||||
if (combinedHeatCapacity > 0f)
|
if (combinedHeatCapacity > Atmospherics.MinimumHeatCapacity)
|
||||||
receiver.Temperature = (GetThermalEnergy(source, sourceHeatCapacity.Value * fraction) + GetThermalEnergy(receiver, receiverHeatCapacity)) / combinedHeatCapacity;
|
receiver.Temperature = (GetThermalEnergy(source, sourceHeatCapacity.Value * fraction) + GetThermalEnergy(receiver, receiverHeatCapacity)) / combinedHeatCapacity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,7 +113,10 @@ public sealed class GenericGasReactionSystem : EntitySystem
|
|||||||
}
|
}
|
||||||
|
|
||||||
float newHeatCapacity = _atmosphere.GetHeatCapacity(mix, true);
|
float newHeatCapacity = _atmosphere.GetHeatCapacity(mix, true);
|
||||||
mix.Temperature = (initialE + reactionE)/newHeatCapacity;
|
if (newHeatCapacity > Atmospherics.MinimumHeatCapacity)
|
||||||
|
{
|
||||||
|
mix.Temperature = (initialE + reactionE)/newHeatCapacity;
|
||||||
|
}
|
||||||
if (reactionE > 0)
|
if (reactionE > 0)
|
||||||
{
|
{
|
||||||
var location = holder as TileAtmosphere;
|
var location = holder as TileAtmosphere;
|
||||||
|
|||||||
Reference in New Issue
Block a user