From 5e2cdcfd37bbe7c12cc77c17d1e798cc77929315 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Mon, 19 Jul 2021 18:49:18 +1000 Subject: [PATCH] Fix physics pushing rotation bugs (#4288) --- .../Movement/EntitySystems/SharedMobMoverSystem.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) 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); } } }