refactor(runtime): own local movement and outbound cadence
Move the canonical local movement controller, body/motion managers, object clock, movement wire data, and MTS/jump/AP sender into AcDream.Runtime. Replace process skill defaults with typed Runtime character options, make graphical and direct commands borrow one autorun owner, retain the construction-time PartArray seam, and include movement in terminal ownership convergence. Preserve the accepted pre-inbound movement/jump and post-inbound autonomous-position order while moving the exact packet/cadence fixtures into Runtime tests. Add graphical/direct parity, two-instance isolation, teardown, allocation, architecture, and divergence-path coverage. Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
3456dff038
commit
aa3f4a60f8
36 changed files with 878 additions and 276 deletions
|
|
@ -162,7 +162,7 @@ public sealed class GameWindow :
|
|||
private LiveEntityAnimationPresenter _animationPresenter = null!;
|
||||
private readonly AcDream.App.Input.MovementTruthDiagnosticController
|
||||
_movementTruthDiagnostics;
|
||||
private readonly AcDream.App.Input.LocalPlayerOutboundController _localPlayerOutbound;
|
||||
private readonly LocalPlayerOutboundController _localPlayerOutbound;
|
||||
private readonly AcDream.App.Update.UpdateFrameClock _updateFrameClock = new();
|
||||
private AcDream.App.Physics.RemoteTeleportController? _remoteTeleportController;
|
||||
// Step 7 projectile presentation. The controller owns no identity map;
|
||||
|
|
@ -431,8 +431,8 @@ public sealed class GameWindow :
|
|||
private AcDream.App.Rendering.SceneLightingUboBinding? _sceneLightingUbo;
|
||||
private AcDream.App.Rendering.Sky.SkyRenderer? _skyRenderer;
|
||||
// Phase B.2: player movement mode.
|
||||
private readonly AcDream.App.Input.LocalPlayerControllerSlot _playerControllerSlot = new();
|
||||
private AcDream.App.Input.PlayerMovementController? _playerController
|
||||
private readonly RuntimeLocalPlayerMovementState _playerControllerSlot = new();
|
||||
private PlayerMovementController? _playerController
|
||||
=> _playerControllerSlot.Controller;
|
||||
private readonly AcDream.App.Input.ChaseCameraInputState _chaseCameraInput = new();
|
||||
private AcDream.App.Rendering.ChaseCamera? _chaseCamera
|
||||
|
|
@ -586,6 +586,7 @@ public sealed class GameWindow :
|
|||
new AcDream.App.Input.DevToolsInputCaptureSource(options.DevTools),
|
||||
_retainedInputCapture);
|
||||
_movementInput = new AcDream.App.Input.DispatcherMovementInputSource(
|
||||
_playerControllerSlot,
|
||||
_inputCapture);
|
||||
_framebufferResize = new FramebufferResizeController(_viewportAspect);
|
||||
_datDir = options.DatDir;
|
||||
|
|
@ -620,7 +621,7 @@ public sealed class GameWindow :
|
|||
options.DumpMoveTruth,
|
||||
_playerControllerSlot,
|
||||
_localPlayerIdentity);
|
||||
_localPlayerOutbound = new AcDream.App.Input.LocalPlayerOutboundController(
|
||||
_localPlayerOutbound = new LocalPlayerOutboundController(
|
||||
_movementTruthDiagnostics);
|
||||
}
|
||||
|
||||
|
|
@ -1587,6 +1588,7 @@ public sealed class GameWindow :
|
|||
_runtimeCharacter,
|
||||
_runtimeCommunication,
|
||||
_runtimeActions,
|
||||
_playerControllerSlot,
|
||||
_renderSceneShadow,
|
||||
_livePresentationBindings,
|
||||
_entityEffectAdvance,
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ internal sealed record LiveShutdownRoots(
|
|||
RuntimeCharacterState Character,
|
||||
RuntimeCommunicationState Communication,
|
||||
RuntimeActionState Actions,
|
||||
RuntimeLocalPlayerMovementState Movement,
|
||||
RenderSceneShadowRuntime? RenderSceneShadow,
|
||||
LivePresentationRuntimeBindings? PresentationBindings,
|
||||
DeferredEntityEffectAdvanceSource EffectAdvance,
|
||||
|
|
@ -392,6 +393,9 @@ internal static class GameWindowShutdownManifest
|
|||
]),
|
||||
new ResourceShutdownStage("runtime entity/object stream",
|
||||
[
|
||||
Hard(
|
||||
"runtime local movement state",
|
||||
live.Movement.Dispose),
|
||||
Hard(
|
||||
"runtime action state",
|
||||
live.Actions.Dispose),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue