Some MoverController cleanup (#18484)

Was going to code a feature but forgor it already existed so I just cleaned up some Dirty / EntityQuery<T> stuff.
This commit is contained in:
metalgearsloth
2023-08-01 14:08:52 +10:00
committed by GitHub
parent 823cb0a762
commit 73c323fd62
5 changed files with 93 additions and 117 deletions

View File

@@ -50,7 +50,8 @@ public sealed partial class ReplaySpectatorSystem
if (Direction == DirectionFlag.None)
{
if (TryComp(player, out InputMoverComponent? cmp))
_mover.LerpRotation(cmp, frameTime);
_mover.LerpRotation(player, cmp, frameTime);
return;
}
@@ -64,7 +65,7 @@ public sealed partial class ReplaySpectatorSystem
if (!TryComp(player, out InputMoverComponent? mover))
return;
_mover.LerpRotation(mover, frameTime);
_mover.LerpRotation(player, mover, frameTime);
var effectiveDir = Direction;
if ((Direction & DirectionFlag.North) != 0)
@@ -75,7 +76,7 @@ public sealed partial class ReplaySpectatorSystem
var query = GetEntityQuery<TransformComponent>();
var xform = query.GetComponent(player);
var pos = _transform.GetWorldPosition(xform, query);
var pos = _transform.GetWorldPosition(xform);
if (!xform.ParentUid.IsValid())
{
@@ -93,12 +94,12 @@ public sealed partial class ReplaySpectatorSystem
if (xform.ParentUid.IsValid())
_transform.SetGridId(player, xform, Transform(xform.ParentUid).GridUid);
var parentRotation = _mover.GetParentGridAngle(mover, query);
var parentRotation = _mover.GetParentGridAngle(mover);
var localVec = effectiveDir.AsDir().ToAngle().ToWorldVec();
var worldVec = parentRotation.RotateVec(localVec);
var speed = CompOrNull<MovementSpeedModifierComponent>(player)?.BaseSprintSpeed ?? DefaultSpeed;
var delta = worldVec * frameTime * speed;
_transform.SetWorldPositionRotation(xform, pos + delta, delta.ToWorldAngle(), query);
_transform.SetWorldPositionRotation(xform, pos + delta, delta.ToWorldAngle());
}
private sealed class MoverHandler : InputCmdHandler