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
|
|
@ -10,6 +10,7 @@ using AcDream.Core.Physics;
|
|||
using AcDream.Core.Rendering;
|
||||
using AcDream.Core.Vfx;
|
||||
using AcDream.Core.World;
|
||||
using AcDream.Runtime.Entities;
|
||||
using AcDream.UI.Abstractions.Panels.Settings;
|
||||
|
||||
namespace AcDream.App.Update;
|
||||
|
|
@ -196,12 +197,12 @@ internal sealed class LiveObjectFrameController : ILiveObjectFramePhase
|
|||
_selectionInteractions?.DrainOutbound();
|
||||
|
||||
Vector3? playerPosition =
|
||||
_liveEntities.MaterializedWorldEntities.TryGetValue(
|
||||
_liveEntities.TryGetWorldEntity(
|
||||
_localPlayer.ServerGuid,
|
||||
out WorldEntity? player)
|
||||
? player.Position
|
||||
: null;
|
||||
IReadOnlyDictionary<uint, LiveEntityAnimationSchedule> schedules =
|
||||
IReadOnlyDictionary<RuntimeEntityKey, LiveEntityAnimationSchedule> schedules =
|
||||
_animations.Tick(
|
||||
deltaSeconds,
|
||||
playerPosition,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue