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

@@ -33,13 +33,13 @@ namespace Content.Server.Physics.Controllers
private void OnRelayPlayerAttached(EntityUid uid, RelayInputMoverComponent component, PlayerAttachedEvent args)
{
if (TryComp<InputMoverComponent>(component.RelayEntity, out var inputMover))
if (MoverQuery.TryGetComponent(component.RelayEntity, out var inputMover))
SetMoveInput(inputMover, MoveButtons.None);
}
private void OnRelayPlayerDetached(EntityUid uid, RelayInputMoverComponent component, PlayerDetachedEvent args)
{
if (TryComp<InputMoverComponent>(component.RelayEntity, out var inputMover))
if (MoverQuery.TryGetComponent(component.RelayEntity, out var inputMover))
SetMoveInput(inputMover, MoveButtons.None);
}
@@ -62,24 +62,16 @@ namespace Content.Server.Physics.Controllers
{
base.UpdateBeforeSolve(prediction, frameTime);
var bodyQuery = GetEntityQuery<PhysicsComponent>();
var relayQuery = GetEntityQuery<RelayInputMoverComponent>();
var relayTargetQuery = GetEntityQuery<MovementRelayTargetComponent>();
var xformQuery = GetEntityQuery<TransformComponent>();
var moverQuery = GetEntityQuery<InputMoverComponent>();
var mobMoverQuery = GetEntityQuery<MobMoverComponent>();
var pullableQuery = GetEntityQuery<SharedPullableComponent>();
var inputQueryEnumerator = AllEntityQuery<InputMoverComponent>();
var modifierQuery = GetEntityQuery<MovementSpeedModifierComponent>();
while (inputQueryEnumerator.MoveNext(out var uid, out var mover))
{
var physicsUid = uid;
if (relayQuery.HasComponent(uid))
if (RelayQuery.HasComponent(uid))
continue;
if (!xformQuery.TryGetComponent(uid, out var xform))
if (!XformQuery.TryGetComponent(uid, out var xform))
{
continue;
}
@@ -87,17 +79,17 @@ namespace Content.Server.Physics.Controllers
PhysicsComponent? body;
var xformMover = xform;
if (mover.ToParent && relayQuery.HasComponent(xform.ParentUid))
if (mover.ToParent && RelayQuery.HasComponent(xform.ParentUid))
{
if (!bodyQuery.TryGetComponent(xform.ParentUid, out body) ||
!TryComp(xform.ParentUid, out xformMover))
if (!PhysicsQuery.TryGetComponent(xform.ParentUid, out body) ||
!XformQuery.TryGetComponent(xform.ParentUid, out xformMover))
{
continue;
}
physicsUid = xform.ParentUid;
}
else if (!bodyQuery.TryGetComponent(uid, out body))
else if (!PhysicsQuery.TryGetComponent(uid, out body))
{
continue;
}
@@ -107,13 +99,7 @@ namespace Content.Server.Physics.Controllers
physicsUid,
body,
xformMover,
frameTime,
xformQuery,
moverQuery,
mobMoverQuery,
relayTargetQuery,
pullableQuery,
modifierQuery);
frameTime);
}
HandleShuttleMovement(frameTime);