refactor(world): extract live projection mechanics

Move appearance rebinding, collision construction, default-pose resolution, local shadow ownership, and exact leave-world presentation into focused owners. Preserve retail parent ordering with staged validation, committed recovery, recursive attached-subtree withdrawal, and retryable exact teardown across parent, pickup, position, unwield, and pose-loss edges.

Co-Authored-By: OpenAI Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-21 16:17:03 +02:00
parent c87bac31a0
commit 69a2ca0c6d
26 changed files with 4172 additions and 430 deletions

View file

@ -659,7 +659,7 @@ public sealed class LiveEntityRuntimeTests
}
[Fact]
public void InitialChildCreate_PreservesParentEventQueuedForMissingChild()
public void InitialChildCreate_PreservesParentEventQueuedForRenderValidation()
{
const uint parentGuid = 0x70000020u;
const uint childGuid = 0x70000021u;
@ -676,7 +676,9 @@ public sealed class LiveEntityRuntimeTests
childGuid, out ParentAttachmentRelation relation));
Assert.Equal(parentGuid, relation.ParentGuid);
Assert.True(runtime.TryGetSnapshot(childGuid, out WorldSession.EntitySpawn child));
Assert.Null(child.Position);
Assert.NotNull(child.Position);
Assert.Null(child.ParentGuid);
Assert.Equal((ushort)5, child.PositionSequence);
}
[Fact]