diff --git a/Content.Server/Physics/Controllers/PullController.cs b/Content.Server/Physics/Controllers/PullController.cs index b8a7d81040..4254b6cc3d 100644 --- a/Content.Server/Physics/Controllers/PullController.cs +++ b/Content.Server/Physics/Controllers/PullController.cs @@ -31,6 +31,9 @@ namespace Content.Server.Physics.Controllers // Velocity change of -LinearVelocity * frameTime * this private const float SettleShutdownMultiplier = 20.0f; + // How much you must move for the puller movement check to actually hit. + private const float MinimumMovementDistance = 0.005f; + [Dependency] private readonly SharedPullingSystem _pullableSystem = default!; // TODO: Move this stuff to pullingsystem @@ -64,6 +67,10 @@ namespace Content.Server.Physics.Controllers UpdatePulledRotation(uid, pullable.Owner); + if (args.NewPosition.EntityId == args.OldPosition.EntityId && + (args.NewPosition.Position - args.OldPosition.Position).LengthSquared < MinimumMovementDistance * MinimumMovementDistance) + return; + if (TryComp(pullable.Owner, out var physics)) physics.WakeBody();