feat(headless): complete deterministic bot command parity

This commit is contained in:
Erik 2026-07-27 08:23:36 +02:00
parent 7e8acb74dd
commit 38e83640d9
37 changed files with 2805 additions and 295 deletions

View file

@ -177,7 +177,8 @@ public sealed class GameRuntime
faultInjection);
context.EntityObjects = new RuntimeEntityObjectLifetime(
dependencies.FirstLocalEntityId);
dependencies.FirstLocalEntityId,
dependencies.TimeProvider);
construction.Own(context.EntityObjects);
Fault(
GameRuntimeConstructionPoint.EntityObjectsCreated,
@ -259,7 +260,8 @@ public sealed class GameRuntime
() => clock.FrameNumber);
context.Events = new GameRuntimeEventHub(
context.EntityObjects,
context.Communication);
context.Communication,
context.Actions);
construction.Own(context.Events);
Fault(
GameRuntimeConstructionPoint.EventsCreated,
@ -362,6 +364,17 @@ public sealed class GameRuntime
Portal.Snapshot,
Portal.Ownership);
public RuntimeLocalPlayerFrameController CreateLocalPlayerFrameController(
IRuntimeLocalPlayerFrameHost host,
IRuntimeMovementInputSource input)
{
ObjectDisposedException.ThrowIf(_disposeRequested || _disposed, this);
return new RuntimeLocalPlayerFrameController(
host,
input,
() => _events.EmitMovement(MovementOwner.Snapshot));
}
public void ResetGeneration(
RuntimeGenerationToken retiringGeneration,
IRuntimeGenerationResetHost host) =>