diff --git a/Content.Shared/Movement/EntitySystems/SharedMobMoverSystem.cs b/Content.Shared/Movement/EntitySystems/SharedMobMoverSystem.cs index 462c12760f..2bee98ca4f 100644 --- a/Content.Shared/Movement/EntitySystems/SharedMobMoverSystem.cs +++ b/Content.Shared/Movement/EntitySystems/SharedMobMoverSystem.cs @@ -24,17 +24,15 @@ namespace Content.Shared.Movement.EntitySystems /// /// Fake pushing for player collisions. /// - private void HandleCollisionMessage(Fixture ourFixture, Fixture otherFixture, float frameTime, Manifold manifold) + private void HandleCollisionMessage(Fixture ourFixture, Fixture otherFixture, float frameTime, Vector2 worldNormal) { var otherBody = otherFixture.Body; if (otherBody.BodyType != BodyType.Dynamic || !otherFixture.Hard) return; - var normal = manifold.LocalNormal; + if (!ourFixture.Body.Owner.TryGetComponent(out IMobMoverComponent? mobMover) || worldNormal == Vector2.Zero) return; - if (!ourFixture.Body.Owner.TryGetComponent(out IMobMoverComponent? mobMover) || normal == Vector2.Zero) return; - - otherBody.ApplyLinearImpulse(-normal * mobMover.PushStrength * frameTime); + otherBody.ApplyLinearImpulse(-worldNormal * mobMover.PushStrength * frameTime); } } }