From d2fd925829cfc3e37d144db68ecfa753354cf877 Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Tue, 27 Dec 2022 14:51:21 +1300 Subject: [PATCH] remove DeferredUpdate from mover code. (#13198) --- Content.Shared/Movement/Systems/SharedMoverController.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Content.Shared/Movement/Systems/SharedMoverController.cs b/Content.Shared/Movement/Systems/SharedMoverController.cs index 771675c440..6773fe316f 100644 --- a/Content.Shared/Movement/Systems/SharedMoverController.cs +++ b/Content.Shared/Movement/Systems/SharedMoverController.cs @@ -271,10 +271,10 @@ namespace Content.Shared.Movement.Systems if (worldTotal != Vector2.Zero) { - // This should have its event run during island solver soooo - xform.DeferUpdates = true; - xform.WorldRotation = worldTotal.ToWorldAngle(); - xform.DeferUpdates = false; + var worldRot = _transform.GetWorldRotation(xform); + _transform.SetLocalRotation(xform, xform.LocalRotation + worldTotal.ToWorldAngle() - worldRot); + // TODO apparently this results in a duplicate move event because "This should have its event run during + // island solver"??. So maybe SetRotation needs an argument to avoid raising an event? if (!weightless && TryComp(mover.Owner, out var mobMover) && TryGetSound(weightless, mover, mobMover, xform, out var sound))