feat(runtime): expose dormant placement receipts

This commit is contained in:
Erik 2026-07-31 23:11:44 +02:00
parent 4c02ac4259
commit 270f5154b9
9 changed files with 223 additions and 4 deletions

View file

@ -118,6 +118,9 @@ public sealed class RuntimeEntityObjectLifetime : IDisposable
InventoryView = views.Inventory;
Events = new RuntimeEntityObjectEventStream(Entities, Objects);
Physics.SetPosition.BindEventStream(Events);
Placements = new RuntimePlacementProjectionChannel(
Events,
Physics.SetPosition);
}
internal RuntimeEntityObjectLifetime(
@ -140,6 +143,9 @@ public sealed class RuntimeEntityObjectLifetime : IDisposable
InventoryView = views.Inventory;
Events = new RuntimeEntityObjectEventStream(Entities, Objects);
Physics.SetPosition.BindEventStream(Events);
Placements = new RuntimePlacementProjectionChannel(
Events,
Physics.SetPosition);
}
internal RuntimeEntityObjectLifetime(
@ -162,6 +168,9 @@ public sealed class RuntimeEntityObjectLifetime : IDisposable
InventoryView = views.Inventory;
Events = new RuntimeEntityObjectEventStream(Entities, Objects);
Physics.SetPosition.BindEventStream(Events);
Placements = new RuntimePlacementProjectionChannel(
Events,
Physics.SetPosition);
}
public RuntimeEntityDirectory Entities { get; }
@ -170,6 +179,7 @@ public sealed class RuntimeEntityObjectLifetime : IDisposable
public IRuntimeEntityView EntityView { get; }
public IRuntimeInventoryView InventoryView { get; }
public RuntimeEntityObjectEventStream Events { get; }
public RuntimePlacementProjectionChannel Placements { get; }
public RuntimeEntityObjectOwnershipSnapshot CaptureOwnership()
{
@ -204,6 +214,7 @@ public sealed class RuntimeEntityObjectLifetime : IDisposable
{
EnsureNotDisposed();
Events.BindContext(generation, frameNumber);
Placements.BindGeneration(generation);
}
/// <summary>