refactor(runtime): close simulation ownership

Move remote-motion construction, CreateObject vector initialization, final simulation-component retirement, and the combined J5 ownership ledger into Runtime. Delete App compatibility views and moved-state reconstruction while preserving the existing graphical projection and retail update order.
This commit is contained in:
Erik 2026-07-26 15:53:31 +02:00
parent c30a3efeb0
commit cdee7a4b49
57 changed files with 1013 additions and 410 deletions

View file

@ -201,7 +201,7 @@ public sealed class MouseLookControllerTests
{
PlayerMovementController player = CreatePlayer();
var mode = new LocalPlayerModeState();
var slot = new LocalPlayerControllerSlot { Controller = player };
var slot = new RuntimeLocalPlayerMovementState { Controller = player };
var camera = new CameraController(new OrbitCamera(), new FlyCamera());
var chase = new ChaseCameraInputState();
var mouse = new FakeMouse();

View file

@ -3,12 +3,12 @@ using AcDream.Core.Physics;
namespace AcDream.App.Tests.Input;
public sealed class LocalPlayerControllerSlotTests
public sealed class RuntimeLocalPlayerMovementStateTests
{
[Fact]
public void MotionPreparation_RoutesCompletionWithoutPublishingController()
{
var slot = new LocalPlayerControllerSlot();
var slot = new RuntimeLocalPlayerMovementState();
ILocalPlayerMotionSource source = slot;
var controller = new PlayerMovementController(new PhysicsEngine());
controller.Motion.AddToQueue(0, MotionCommand.Ready, 0);
@ -29,7 +29,7 @@ public sealed class LocalPlayerControllerSlotTests
[Fact]
public void MotionPreparation_HandsOffToCommittedControllerOnDispose()
{
var slot = new LocalPlayerControllerSlot();
var slot = new RuntimeLocalPlayerMovementState();
ILocalPlayerMotionSource source = slot;
var controller = new PlayerMovementController(new PhysicsEngine());
@ -45,7 +45,7 @@ public sealed class LocalPlayerControllerSlotTests
[Fact]
public void MotionPreparation_DrainsPriorAnimationBeforePublishingCandidate()
{
var slot = new LocalPlayerControllerSlot();
var slot = new RuntimeLocalPlayerMovementState();
ILocalPlayerMotionSource source = slot;
var prior = new PlayerMovementController(new PhysicsEngine());
var candidate = new PlayerMovementController(new PhysicsEngine());
@ -71,7 +71,7 @@ public sealed class LocalPlayerControllerSlotTests
[Fact]
public void MotionPreparation_RejectsConcurrentCandidate()
{
var slot = new LocalPlayerControllerSlot();
var slot = new RuntimeLocalPlayerMovementState();
var first = new PlayerMovementController(new PhysicsEngine());
var second = new PlayerMovementController(new PhysicsEngine());