Fix a bunch of mover bugs (#9999)

* Fix a bunch of mover bugs

Just regressions from random things

* Fix vehicle movement I guess
This commit is contained in:
metalgearsloth
2022-07-25 14:16:24 +10:00
committed by GitHub
parent ed068b166f
commit dad26db137
4 changed files with 34 additions and 12 deletions

View File

@@ -36,23 +36,33 @@ namespace Content.Server.Physics.Controllers
foreach (var (mover, xform) in EntityQuery<InputMoverComponent, TransformComponent>(true))
{
if (relayQuery.TryGetComponent(mover.Owner, out var relayed) && relayed != null)
if (relayQuery.TryGetComponent(mover.Owner, out var relayed) && relayed.RelayEntity != null)
{
continue;
}
PhysicsComponent? body = null;
TransformComponent? xformMover = xform;
if (mover.ToParent && relayQuery.HasComponent(xform.ParentUid))
{
if (!bodyQuery.TryGetComponent(xform.ParentUid, out body)) continue;
if (!bodyQuery.TryGetComponent(xform.ParentUid, out body) ||
!TryComp(xform.ParentUid, out xformMover))
{
continue;
}
if (TryComp<InputMoverComponent>(xform.ParentUid, out var parentMover))
{
mover.LastGridAngle = parentMover.LastGridAngle;
}
}
else if (!bodyQuery.TryGetComponent(mover.Owner, out body))
{
continue;
}
HandleMobMovement(mover, body, xform, frameTime);
HandleMobMovement(mover, body, xformMover, frameTime);
}
HandleShuttleMovement(frameTime);