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:
@@ -58,7 +58,7 @@ namespace Content.Client.Physics.Controllers
|
||||
{
|
||||
Physics.UpdateIsPredicted(uid);
|
||||
Physics.UpdateIsPredicted(component.RelayEntity);
|
||||
if (TryComp<InputMoverComponent>(component.RelayEntity, out var inputMover))
|
||||
if (MoverQuery.TryGetComponent(component.RelayEntity, out var inputMover))
|
||||
SetMoveInput(inputMover, MoveButtons.None);
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace Content.Client.Physics.Controllers
|
||||
{
|
||||
Physics.UpdateIsPredicted(uid);
|
||||
Physics.UpdateIsPredicted(component.RelayEntity);
|
||||
if (TryComp<InputMoverComponent>(component.RelayEntity, out var inputMover))
|
||||
if (MoverQuery.TryGetComponent(component.RelayEntity, out var inputMover))
|
||||
SetMoveInput(inputMover, MoveButtons.None);
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ namespace Content.Client.Physics.Controllers
|
||||
if (_playerManager.LocalPlayer?.ControlledEntity is not {Valid: true} player)
|
||||
return;
|
||||
|
||||
if (TryComp<RelayInputMoverComponent>(player, out var relayMover))
|
||||
if (RelayQuery.TryGetComponent(player, out var relayMover))
|
||||
HandleClientsideMovement(relayMover.RelayEntity, frameTime);
|
||||
|
||||
HandleClientsideMovement(player, frameTime);
|
||||
@@ -95,15 +95,8 @@ namespace Content.Client.Physics.Controllers
|
||||
|
||||
private void HandleClientsideMovement(EntityUid player, float frameTime)
|
||||
{
|
||||
var xformQuery = GetEntityQuery<TransformComponent>();
|
||||
var moverQuery = GetEntityQuery<InputMoverComponent>();
|
||||
var relayTargetQuery = GetEntityQuery<MovementRelayTargetComponent>();
|
||||
var mobMoverQuery = GetEntityQuery<MobMoverComponent>();
|
||||
var pullableQuery = GetEntityQuery<SharedPullableComponent>();
|
||||
var modifierQuery = GetEntityQuery<MovementSpeedModifierComponent>();
|
||||
|
||||
if (!moverQuery.TryGetComponent(player, out var mover) ||
|
||||
!xformQuery.TryGetComponent(player, out var xform))
|
||||
if (!MoverQuery.TryGetComponent(player, out var mover) ||
|
||||
!XformQuery.TryGetComponent(player, out var xform))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -112,17 +105,17 @@ namespace Content.Client.Physics.Controllers
|
||||
PhysicsComponent? body;
|
||||
var xformMover = xform;
|
||||
|
||||
if (mover.ToParent && HasComp<RelayInputMoverComponent>(xform.ParentUid))
|
||||
if (mover.ToParent && RelayQuery.HasComponent(xform.ParentUid))
|
||||
{
|
||||
if (!TryComp(xform.ParentUid, out body) ||
|
||||
!TryComp(xform.ParentUid, out xformMover))
|
||||
if (!PhysicsQuery.TryGetComponent(xform.ParentUid, out body) ||
|
||||
!XformQuery.TryGetComponent(xform.ParentUid, out xformMover))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
physicsUid = xform.ParentUid;
|
||||
}
|
||||
else if (!TryComp(player, out body))
|
||||
else if (!PhysicsQuery.TryGetComponent(player, out body))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -134,13 +127,7 @@ namespace Content.Client.Physics.Controllers
|
||||
physicsUid,
|
||||
body,
|
||||
xformMover,
|
||||
frameTime,
|
||||
xformQuery,
|
||||
moverQuery,
|
||||
mobMoverQuery,
|
||||
relayTargetQuery,
|
||||
pullableQuery,
|
||||
modifierQuery);
|
||||
frameTime);
|
||||
}
|
||||
|
||||
protected override bool CanSound()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user