Fix explosion grid alignment for static grids (#40193)
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user