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
|
|
@ -39,7 +39,7 @@ internal sealed class LocalPlayerAnimationController
|
|||
output.Reset();
|
||||
|
||||
uint playerGuid = _identity.ServerGuid;
|
||||
if (!_liveEntities.MaterializedWorldEntities.TryGetValue(playerGuid, out var entity)
|
||||
if (!_liveEntities.TryGetWorldEntity(playerGuid, out var entity)
|
||||
|| !_animations.TryGetValue(entity.Id, out var animation)
|
||||
|| animation.Sequencer is not { } sequencer
|
||||
|| !_liveEntities.ShouldAdvanceRootRuntime(playerGuid)
|
||||
|
|
@ -65,7 +65,7 @@ internal sealed class LocalPlayerAnimationController
|
|||
public void CaptureHooks()
|
||||
{
|
||||
uint playerGuid = _identity.ServerGuid;
|
||||
if (_liveEntities.MaterializedWorldEntities.TryGetValue(playerGuid, out var entity)
|
||||
if (_liveEntities.TryGetWorldEntity(playerGuid, out var entity)
|
||||
&& _animations.TryGetValue(entity.Id, out var animation)
|
||||
&& animation.Sequencer is { } sequencer)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ internal sealed class LivePlayerModeAutoEntryContext
|
|||
public bool IsLiveInWorld => _session.IsInWorld;
|
||||
|
||||
public bool IsPlayerEntityPresent =>
|
||||
_liveEntities.MaterializedWorldEntities.ContainsKey(_identity.ServerGuid);
|
||||
_liveEntities.ContainsWorldEntity(_identity.ServerGuid);
|
||||
|
||||
public bool IsPlayerControllerReady => true;
|
||||
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ internal sealed class PlayerModeController :
|
|||
private bool TryEnter(string loggingTag)
|
||||
{
|
||||
uint playerGuid = _identity.ServerGuid;
|
||||
if (!_liveEntities.MaterializedWorldEntities.TryGetValue(
|
||||
if (!_liveEntities.TryGetWorldEntity(
|
||||
playerGuid,
|
||||
out WorldEntity? playerEntity))
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue