refactor(update): cut over the frame orchestrator
Reduce GameWindow.OnUpdate to one typed orchestration call and remove transitive window callbacks from teardown, liveness, teleport placement, live presentation, auto-entry, and entity packet routing. Preserve the frozen retail object/network order while making the production owner graph explicit and testable.
This commit is contained in:
parent
947c61d2d7
commit
e91f310279
18 changed files with 864 additions and 348 deletions
19
src/AcDream.App/Rendering/LiveEntityPartArrayLifecycle.cs
Normal file
19
src/AcDream.App/Rendering/LiveEntityPartArrayLifecycle.cs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
using AcDream.App.World;
|
||||
|
||||
namespace AcDream.App.Rendering;
|
||||
|
||||
/// <summary>Routes retail PartArray world-entry boundaries to live animation owners.</summary>
|
||||
internal sealed class LiveEntityPartArrayLifecycle
|
||||
{
|
||||
private readonly LiveEntityAnimationRuntimeView<LiveEntityAnimationState> _animations;
|
||||
|
||||
public LiveEntityPartArrayLifecycle(
|
||||
LiveEntityAnimationRuntimeView<LiveEntityAnimationState> animations) =>
|
||||
_animations = animations ?? throw new ArgumentNullException(nameof(animations));
|
||||
|
||||
public void HandleEnterWorld(uint localEntityId)
|
||||
{
|
||||
if (_animations.TryGetValue(localEntityId, out LiveEntityAnimationState? animation))
|
||||
animation.Sequencer?.Manager.HandleEnterWorld();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue