refactor(app): key live projections by runtime identity
Move materialized live-object sidecars and presentation worksets to exact RuntimeEntityKey ownership. Runtime remains the only GUID/incarnation/local-ID authority while hydration, animation, effects, lights, equipped children, renderer resources, visibility, liveness, and teardown resolve exact projection identities. Preserve synchronous callbacks, local-ID allocation order, and current rendering behavior.
This commit is contained in:
parent
e18df84437
commit
420e5eea70
73 changed files with 2939 additions and 1715 deletions
15
src/AcDream.App/World/ILiveEntityRadarSource.cs
Normal file
15
src/AcDream.App/World/ILiveEntityRadarSource.cs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
using AcDream.Core.World;
|
||||
|
||||
namespace AcDream.App.World;
|
||||
|
||||
/// <summary>
|
||||
/// Allocation-free live-projection query used by the radar. Implementations
|
||||
/// expose current presentation state without publishing a second GUID identity
|
||||
/// map.
|
||||
/// </summary>
|
||||
public interface ILiveEntityRadarSource
|
||||
{
|
||||
bool TryGetMaterialized(uint serverGuid, out WorldEntity entity);
|
||||
bool TryGetVisible(uint serverGuid, out WorldEntity entity);
|
||||
void CopyVisibleTo(List<KeyValuePair<uint, WorldEntity>> destination);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue