refactor(runtime): own canonical entity and object lifetime
Introduce one presentation-free RuntimeEntityObjectLifetime for the exact entity directory and ClientObjectTable. Make GameWindow, graphical projections, retained UI, interaction, session routing, create/delete integration, and reset borrow that owner while preserving synchronous retail ordering, dormant retention, and retry semantics. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
d9bf4c4960
commit
5ef8b5371d
40 changed files with 712 additions and 170 deletions
|
|
@ -1828,7 +1828,8 @@ public sealed class LiveEntityHydrationControllerTests
|
|||
private sealed class Fixture : IDisposable
|
||||
{
|
||||
public readonly List<string> Operations = [];
|
||||
public readonly ClientObjectTable Objects = new();
|
||||
public readonly RuntimeEntityObjectLifetime EntityObjects = new();
|
||||
public ClientObjectTable Objects => EntityObjects.Objects;
|
||||
public readonly RecordingResources Resources;
|
||||
public readonly LiveEntityRuntime Runtime;
|
||||
public readonly RecordingMaterializer Materializer;
|
||||
|
|
@ -1861,7 +1862,8 @@ public sealed class LiveEntityHydrationControllerTests
|
|||
Runtime = new LiveEntityRuntime(
|
||||
spatial,
|
||||
Resources,
|
||||
Teardown);
|
||||
Teardown,
|
||||
EntityObjects);
|
||||
Materializer = new RecordingMaterializer(Runtime, Operations);
|
||||
Relationships = new RecordingRelationships(Operations);
|
||||
Ready = new RecordingReadyPublisher(Operations);
|
||||
|
|
@ -1887,13 +1889,13 @@ public sealed class LiveEntityHydrationControllerTests
|
|||
};
|
||||
var deletion = new LiveEntityDeletionController(
|
||||
Runtime,
|
||||
Objects,
|
||||
EntityObjects,
|
||||
Teardown,
|
||||
identity,
|
||||
Dormant);
|
||||
Controller = new LiveEntityHydrationController(
|
||||
Runtime,
|
||||
Objects,
|
||||
EntityObjects,
|
||||
new object(),
|
||||
Materializer,
|
||||
Relationships,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue