refactor(world): extract live entity network updates
Move Position, Vector, State, Movement, and equal-generation CreateObject routing out of GameWindow while preserving per-channel authority, ForcePosition acknowledgement, and motion-runtime ownership. Add adversarial authority and exact-wire coverage so reentrant updates and GUID reuse cannot publish stale state.
This commit is contained in:
parent
c203e4799a
commit
aa90c64666
19 changed files with 3701 additions and 2241 deletions
|
|
@ -30,6 +30,23 @@ public sealed class GameWindowLiveEntityCompositionTests
|
|||
[InlineData("OnLiveEntityPruned")]
|
||||
[InlineData("TearDownLiveEntityRuntimeComponents")]
|
||||
[InlineData("CreateLiveEntityRuntimeTeardownPlan")]
|
||||
[InlineData("RouteSameGenerationCreateObject")]
|
||||
[InlineData("OnLiveMotionUpdated")]
|
||||
[InlineData("OnLivePositionUpdated")]
|
||||
[InlineData("OnLiveVectorUpdated")]
|
||||
[InlineData("OnLiveStateUpdated")]
|
||||
[InlineData("EnsureRemoteMotionBindings")]
|
||||
[InlineData("ResolvePhysicsHost")]
|
||||
[InlineData("GetSetupCylinder")]
|
||||
[InlineData("RouteServerMoveTo")]
|
||||
[InlineData("StickToObjectFromWire")]
|
||||
[InlineData("ClearTargetForHiddenEntity")]
|
||||
[InlineData("ApplyServerControlledVelocityCycle")]
|
||||
[InlineData("RunRemoteTeleportHook")]
|
||||
[InlineData("SendImmediateLocalPositionEvent")]
|
||||
[InlineData("DispatchRemoteInboundMotion")]
|
||||
[InlineData("CreateRemoteMotion")]
|
||||
[InlineData("WillAdvanceRemoteMotion")]
|
||||
public void GameWindow_DoesNotReacquireExtractedLiveEntityBodies(string methodName)
|
||||
{
|
||||
Assert.Null(typeof(GameWindow).GetMethod(methodName, PrivateImplementation));
|
||||
|
|
@ -52,6 +69,10 @@ public sealed class GameWindowLiveEntityCompositionTests
|
|||
[InlineData(typeof(LiveEntityHydrationController))]
|
||||
[InlineData(typeof(DatLiveEntityProjectionMaterializer))]
|
||||
[InlineData(typeof(LiveEntityRuntimeTeardownController))]
|
||||
[InlineData(typeof(LiveEntityNetworkUpdateController))]
|
||||
[InlineData(typeof(LiveEntityMotionRuntimeController))]
|
||||
[InlineData(typeof(LiveEntityInboundAuthorityGate))]
|
||||
[InlineData(typeof(DeferredLiveEntityMotionRuntimeBindings))]
|
||||
public void ExtractedHelpers_DoNotOwnGuidIndexesOrBackendState(Type helperType)
|
||||
{
|
||||
foreach (FieldInfo field in helperType.GetFields(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue