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:
parent
c87bac31a0
commit
69a2ca0c6d
26 changed files with 4172 additions and 430 deletions
|
|
@ -208,7 +208,7 @@ public sealed class InboundPhysicsStateControllerTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void ParentEventWaitsForParent_ThenConsumesChildPositionOnce()
|
||||
public void ParentEventWaitsForParent_ThenStagesTimestampUntilValidatedCommit()
|
||||
{
|
||||
var controller = new InboundPhysicsStateController();
|
||||
controller.AcceptCreate(Spawn(
|
||||
|
|
@ -219,7 +219,17 @@ public sealed class InboundPhysicsStateControllerTests
|
|||
Assert.False(controller.TryApplyParent(update, out _));
|
||||
controller.AcceptCreate(Spawn(
|
||||
0x70000004u, 9, 1, 1, Position(0x0101FFFFu, 15f), 0x408u));
|
||||
Assert.True(controller.TryApplyParent(update, out WorldSession.EntitySpawn attached));
|
||||
Assert.True(controller.TryApplyParent(update, out WorldSession.EntitySpawn staged));
|
||||
Assert.Null(staged.ParentGuid);
|
||||
Assert.NotNull(staged.Position);
|
||||
Assert.Equal((ushort)5, staged.PositionSequence);
|
||||
Assert.True(controller.TryCommitParent(
|
||||
update.ChildGuid,
|
||||
update.ParentGuid,
|
||||
update.ParentLocation,
|
||||
update.PlacementId,
|
||||
update.ChildPositionSequence,
|
||||
out WorldSession.EntitySpawn attached));
|
||||
Assert.Equal(0x70000004u, attached.ParentGuid);
|
||||
Assert.Null(attached.Position);
|
||||
Assert.False(controller.TryApplyParent(update, out _));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue