The real movement refactor (#9645)
* The real movement refactor * ref events * Jetpack cleanup * a * Vehicles partially working * Balance tweaks * Restore some shitcode * AAAAAAAA * Even more prediction * ECS compstate trying to fix this * yml * vehicles kill me * Don't lock keys * a * Fix problem * Fix sounds * shuttle inputs * Shuttle controls * space brakes * Keybinds * Fix merge * Handle shutdown * Fix keys * Bump friction * fix buckle offset * Fix relay and friction * Fix jetpack turning * contexts amirite
This commit is contained in:
@@ -1,10 +1,7 @@
|
||||
using Content.Shared.MobState.Components;
|
||||
using Content.Shared.Movement;
|
||||
using Content.Shared.Movement.Components;
|
||||
using Content.Shared.Movement.Systems;
|
||||
using Content.Shared.Pulling.Components;
|
||||
using Robust.Client.Player;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Physics;
|
||||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Timing;
|
||||
@@ -20,10 +17,32 @@ namespace Content.Client.Physics.Controllers
|
||||
{
|
||||
base.UpdateBeforeSolve(prediction, frameTime);
|
||||
|
||||
if (_playerManager.LocalPlayer?.ControlledEntity is not {Valid: true} player ||
|
||||
!TryComp(player, out IMoverComponent? mover) ||
|
||||
!TryComp(player, out PhysicsComponent? body) ||
|
||||
!TryComp(player, out TransformComponent? xform))
|
||||
if (_playerManager.LocalPlayer?.ControlledEntity is not {Valid: true} player)
|
||||
return;
|
||||
|
||||
if (TryComp<RelayInputMoverComponent>(player, out var relayMover))
|
||||
{
|
||||
if (relayMover.RelayEntity != null)
|
||||
HandleClientsideMovement(relayMover.RelayEntity.Value, frameTime);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
HandleClientsideMovement(player, frameTime);
|
||||
}
|
||||
|
||||
private void HandleClientsideMovement(EntityUid player, float frameTime)
|
||||
{
|
||||
if (!TryComp(player, out InputMoverComponent? mover) ||
|
||||
!TryComp(player, out TransformComponent? xform)) return;
|
||||
|
||||
PhysicsComponent? body = null;
|
||||
|
||||
if (mover.ToParent && HasComp<RelayInputMoverComponent>(xform.ParentUid))
|
||||
{
|
||||
if (!TryComp(xform.ParentUid, out body)) return;
|
||||
}
|
||||
else if (!TryComp(player, out body))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -65,13 +84,7 @@ namespace Content.Client.Physics.Controllers
|
||||
}
|
||||
|
||||
// Server-side should just be handled on its own so we'll just do this shizznit
|
||||
if (TryComp(player, out IMobMoverComponent? mobMover))
|
||||
{
|
||||
HandleMobMovement(mover, body, mobMover, xform, frameTime);
|
||||
return;
|
||||
}
|
||||
|
||||
HandleKinematicMovement(mover, body);
|
||||
HandleMobMovement(mover, body, xform, frameTime);
|
||||
}
|
||||
|
||||
protected override Filter GetSoundPlayers(EntityUid mover)
|
||||
|
||||
Reference in New Issue
Block a user