diff --git a/Content.Server/GameObjects/EntitySystems/MoverSystem.cs b/Content.Server/GameObjects/EntitySystems/MoverSystem.cs index f33305ed18..1ffa88fd5b 100644 --- a/Content.Server/GameObjects/EntitySystems/MoverSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/MoverSystem.cs @@ -58,12 +58,9 @@ namespace Content.Server.GameObjects.EntitySystems public override void Update(float frameTime) { - foreach (var (moverComponent, physics) in EntityManager.ComponentManager.EntityQuery()) + foreach (var (moverComponent, physics) in EntityManager.ComponentManager.EntityQuery(false)) { var entity = moverComponent.Owner; - if (_pauseManager.IsEntityPaused(entity)) - continue; - UpdateKinematics(entity.Transform, moverComponent, physics); } } diff --git a/Content.Shared/GameObjects/EntitySystems/SharedMoverSystem.cs b/Content.Shared/GameObjects/EntitySystems/SharedMoverSystem.cs index c37e54a323..c534d53ef4 100644 --- a/Content.Shared/GameObjects/EntitySystems/SharedMoverSystem.cs +++ b/Content.Shared/GameObjects/EntitySystems/SharedMoverSystem.cs @@ -65,6 +65,7 @@ namespace Content.Shared.GameObjects.EntitySystems if (!touching) { + transform.LocalRotation = physics.LinearVelocity.GetDir().ToAngle(); return; } } @@ -88,7 +89,7 @@ namespace Content.Shared.GameObjects.EntitySystems controller.Push(combined, mover.CurrentPushSpeed); } - transform.LocalRotation = walkDir.GetDir().ToAngle(); + transform.LocalRotation = physics.LinearVelocity.GetDir().ToAngle(); return; } @@ -122,7 +123,9 @@ namespace Content.Shared.GameObjects.EntitySystems continue; // Don't try to push off of yourself! } - if (!entity.TryGetComponent(out var otherCollider)) + if (!entity.TryGetComponent(out var otherCollider) || + !otherCollider.CanCollide || + (collider.CollisionMask & otherCollider.CollisionLayer) == 0) { continue; }