Fix explosion grid alignment for static grids (#40193)

This commit is contained in:
Leon Friedrich
2025-09-21 14:52:23 +12:00
committed by GitHub
parent 9893aca467
commit cc4cab5677

View File

@@ -275,7 +275,7 @@ public sealed partial class ExplosionSystem
radius = Math.Min(radius, MaxIterations / 4); radius = Math.Min(radius, MaxIterations / 4);
EntityUid? referenceGrid = null; EntityUid? referenceGrid = null;
float mass = 0; var mass = float.MinValue;
// First attempt to find a grid that is relatively close to the explosion's center. Instead of looking in a // First attempt to find a grid that is relatively close to the explosion's center. Instead of looking in a
// diameter x diameter sized box, use a smaller box with radius sized sides: // diameter x diameter sized box, use a smaller box with radius sized sides:
@@ -285,7 +285,7 @@ public sealed partial class ExplosionSystem
_mapManager.FindGridsIntersecting(epicenter.MapId, box, ref _grids); _mapManager.FindGridsIntersecting(epicenter.MapId, box, ref _grids);
foreach (var grid in _grids) foreach (var grid in _grids)
{ {
if (TryComp(grid.Owner, out PhysicsComponent? physics) && physics.Mass > mass) if (TryComp(grid.Owner, out PhysicsComponent? physics) && physics.FixturesMass > mass)
{ {
mass = physics.Mass; mass = physics.Mass;
referenceGrid = grid.Owner; referenceGrid = grid.Owner;
@@ -315,7 +315,7 @@ public sealed partial class ExplosionSystem
{ {
if (TryComp(grid.Owner, out PhysicsComponent? physics) && physics.Mass > mass) if (TryComp(grid.Owner, out PhysicsComponent? physics) && physics.Mass > mass)
{ {
mass = physics.Mass; mass = physics.FixturesMass;
referenceGrid = grid.Owner; referenceGrid = grid.Owner;
} }
} }