From f7442d13e9ae7d5b077ffecb1f8a10899ad46edd Mon Sep 17 00:00:00 2001 From: Erik Date: Sat, 25 Jul 2026 19:52:29 +0200 Subject: [PATCH] refactor(runtime): move accepted entity wire state Move the presentation-free inbound physics timestamp/snapshot authority and parent-relation state into AcDream.Runtime.Entities without changing their control flow. Move their dedicated tests with them and keep App consumers as borrowers during the staged J3 cutover. Validated by 26 focused Runtime tests, 232 focused App tests, the Release solution build, and 8,429 complete Release tests with five existing skips. Co-authored-by: Codex --- src/AcDream.App/Physics/LiveEntityInboundAuthorityGate.cs | 1 + src/AcDream.App/Physics/LiveEntityNetworkUpdateController.cs | 1 + src/AcDream.App/Rendering/EquippedChildRenderController.cs | 1 + src/AcDream.App/World/LiveEntityHydrationController.cs | 1 + src/AcDream.App/World/LiveEntityHydrationPorts.cs | 1 + src/AcDream.App/World/LiveEntityRuntime.cs | 1 + src/AcDream.App/World/LiveEntitySameGenerationUpdateRouter.cs | 1 + src/AcDream.App/World/LocalPhysicsTimestampPublisher.cs | 1 + .../Entities}/InboundPhysicsStateController.cs | 2 +- .../Entities}/ParentAttachmentState.cs | 2 +- .../Physics/LiveEntityInboundAuthorityGateTests.cs | 1 + tests/AcDream.App.Tests/Physics/ProjectileControllerTests.cs | 1 + .../Rendering/EquippedChildProjectionWithdrawalTests.cs | 1 + .../World/LiveEntityHydrationControllerTests.cs | 1 + tests/AcDream.App.Tests/World/LiveEntityRuntimeTests.cs | 1 + .../World/LiveEntitySameGenerationUpdateRouterTests.cs | 1 + .../Entities}/InboundPhysicsStateControllerTests.cs | 4 ++-- .../Entities}/ParentAttachmentStateTests.cs | 4 ++-- 18 files changed, 20 insertions(+), 6 deletions(-) rename src/{AcDream.App/World => AcDream.Runtime/Entities}/InboundPhysicsStateController.cs (99%) rename src/{AcDream.App/World => AcDream.Runtime/Entities}/ParentAttachmentState.cs (99%) rename tests/{AcDream.App.Tests/World => AcDream.Runtime.Tests/Entities}/InboundPhysicsStateControllerTests.cs (99%) rename tests/{AcDream.App.Tests/World => AcDream.Runtime.Tests/Entities}/ParentAttachmentStateTests.cs (99%) diff --git a/src/AcDream.App/Physics/LiveEntityInboundAuthorityGate.cs b/src/AcDream.App/Physics/LiveEntityInboundAuthorityGate.cs index 96916677..cae94521 100644 --- a/src/AcDream.App/Physics/LiveEntityInboundAuthorityGate.cs +++ b/src/AcDream.App/Physics/LiveEntityInboundAuthorityGate.cs @@ -3,6 +3,7 @@ using AcDream.App.World; using AcDream.Core.Net; using AcDream.Core.Net.Messages; using AcDream.Core.Physics; +using AcDream.Runtime.Entities; namespace AcDream.App.Physics; diff --git a/src/AcDream.App/Physics/LiveEntityNetworkUpdateController.cs b/src/AcDream.App/Physics/LiveEntityNetworkUpdateController.cs index 603e22db..ac3c63f8 100644 --- a/src/AcDream.App/Physics/LiveEntityNetworkUpdateController.cs +++ b/src/AcDream.App/Physics/LiveEntityNetworkUpdateController.cs @@ -12,6 +12,7 @@ using AcDream.Core.Net; using AcDream.Core.Net.Messages; using AcDream.Core.Items; using AcDream.Core.Physics; +using AcDream.Runtime.Entities; using AcDream.Core.Selection; using AcDream.Core.World; using DatReaderWriter; diff --git a/src/AcDream.App/Rendering/EquippedChildRenderController.cs b/src/AcDream.App/Rendering/EquippedChildRenderController.cs index 4aead8b7..bf168550 100644 --- a/src/AcDream.App/Rendering/EquippedChildRenderController.cs +++ b/src/AcDream.App/Rendering/EquippedChildRenderController.cs @@ -12,6 +12,7 @@ using AcDream.Content; using DatReaderWriter.DBObjs; using DatReaderWriter.Enums; using DatReaderWriter.Types; +using AcDream.Runtime.Entities; namespace AcDream.App.Rendering; diff --git a/src/AcDream.App/World/LiveEntityHydrationController.cs b/src/AcDream.App/World/LiveEntityHydrationController.cs index 5b380456..08ac8a98 100644 --- a/src/AcDream.App/World/LiveEntityHydrationController.cs +++ b/src/AcDream.App/World/LiveEntityHydrationController.cs @@ -4,6 +4,7 @@ using AcDream.Core.Items; using AcDream.Core.Net; using AcDream.Core.Net.Messages; using AcDream.Core.World; +using AcDream.Runtime.Entities; namespace AcDream.App.World; diff --git a/src/AcDream.App/World/LiveEntityHydrationPorts.cs b/src/AcDream.App/World/LiveEntityHydrationPorts.cs index 5687f64e..c555f2fe 100644 --- a/src/AcDream.App/World/LiveEntityHydrationPorts.cs +++ b/src/AcDream.App/World/LiveEntityHydrationPorts.cs @@ -5,6 +5,7 @@ using AcDream.App.Rendering.Vfx; using AcDream.App.Streaming; using AcDream.Core.Net; using AcDream.Core.Net.Messages; +using AcDream.Runtime.Entities; namespace AcDream.App.World; diff --git a/src/AcDream.App/World/LiveEntityRuntime.cs b/src/AcDream.App/World/LiveEntityRuntime.cs index 378cac47..ced3ef7b 100644 --- a/src/AcDream.App/World/LiveEntityRuntime.cs +++ b/src/AcDream.App/World/LiveEntityRuntime.cs @@ -3,6 +3,7 @@ using AcDream.Core.Net; using AcDream.Core.Net.Messages; using AcDream.Core.Physics; using AcDream.Core.World; +using AcDream.Runtime.Entities; using System.Numerics; using System.Runtime.ExceptionServices; diff --git a/src/AcDream.App/World/LiveEntitySameGenerationUpdateRouter.cs b/src/AcDream.App/World/LiveEntitySameGenerationUpdateRouter.cs index ce197103..108035ad 100644 --- a/src/AcDream.App/World/LiveEntitySameGenerationUpdateRouter.cs +++ b/src/AcDream.App/World/LiveEntitySameGenerationUpdateRouter.cs @@ -1,5 +1,6 @@ using AcDream.Core.Net; using AcDream.Core.Net.Messages; +using AcDream.Runtime.Entities; using AcDream.Core.Physics; namespace AcDream.App.World; diff --git a/src/AcDream.App/World/LocalPhysicsTimestampPublisher.cs b/src/AcDream.App/World/LocalPhysicsTimestampPublisher.cs index 965995ce..0b01b3c7 100644 --- a/src/AcDream.App/World/LocalPhysicsTimestampPublisher.cs +++ b/src/AcDream.App/World/LocalPhysicsTimestampPublisher.cs @@ -1,5 +1,6 @@ using AcDream.App.Input; using AcDream.App.Net; +using AcDream.Runtime.Entities; namespace AcDream.App.World; diff --git a/src/AcDream.App/World/InboundPhysicsStateController.cs b/src/AcDream.Runtime/Entities/InboundPhysicsStateController.cs similarity index 99% rename from src/AcDream.App/World/InboundPhysicsStateController.cs rename to src/AcDream.Runtime/Entities/InboundPhysicsStateController.cs index d39ee515..2b949929 100644 --- a/src/AcDream.App/World/InboundPhysicsStateController.cs +++ b/src/AcDream.Runtime/Entities/InboundPhysicsStateController.cs @@ -2,7 +2,7 @@ using AcDream.Core.Net; using AcDream.Core.Net.Messages; using AcDream.Core.Physics; -namespace AcDream.App.World; +namespace AcDream.Runtime.Entities; /// /// Update-thread owner of inbound retail physics timestamps and the latest diff --git a/src/AcDream.App/World/ParentAttachmentState.cs b/src/AcDream.Runtime/Entities/ParentAttachmentState.cs similarity index 99% rename from src/AcDream.App/World/ParentAttachmentState.cs rename to src/AcDream.Runtime/Entities/ParentAttachmentState.cs index 029bac83..abdc757a 100644 --- a/src/AcDream.App/World/ParentAttachmentState.cs +++ b/src/AcDream.Runtime/Entities/ParentAttachmentState.cs @@ -1,7 +1,7 @@ using AcDream.Core.Net.Messages; using AcDream.Core.Physics; -namespace AcDream.App.World; +namespace AcDream.Runtime.Entities; /// /// Update-thread state machine for parent relations that may arrive before diff --git a/tests/AcDream.App.Tests/Physics/LiveEntityInboundAuthorityGateTests.cs b/tests/AcDream.App.Tests/Physics/LiveEntityInboundAuthorityGateTests.cs index b6885109..3c256cca 100644 --- a/tests/AcDream.App.Tests/Physics/LiveEntityInboundAuthorityGateTests.cs +++ b/tests/AcDream.App.Tests/Physics/LiveEntityInboundAuthorityGateTests.cs @@ -5,6 +5,7 @@ using AcDream.App.World; using AcDream.Core.Net; using AcDream.Core.Net.Messages; using AcDream.Core.Physics; +using AcDream.Runtime.Entities; namespace AcDream.App.Tests.Physics; diff --git a/tests/AcDream.App.Tests/Physics/ProjectileControllerTests.cs b/tests/AcDream.App.Tests/Physics/ProjectileControllerTests.cs index 7d6644df..9fe8d5fa 100644 --- a/tests/AcDream.App.Tests/Physics/ProjectileControllerTests.cs +++ b/tests/AcDream.App.Tests/Physics/ProjectileControllerTests.cs @@ -8,6 +8,7 @@ using AcDream.Core.Net; using AcDream.Core.Net.Messages; using AcDream.Core.Physics; using AcDream.Core.World; +using AcDream.Runtime.Entities; using DatReaderWriter.DBObjs; using DatReaderWriter.Types; diff --git a/tests/AcDream.App.Tests/Rendering/EquippedChildProjectionWithdrawalTests.cs b/tests/AcDream.App.Tests/Rendering/EquippedChildProjectionWithdrawalTests.cs index 03cca8d2..65d31c10 100644 --- a/tests/AcDream.App.Tests/Rendering/EquippedChildProjectionWithdrawalTests.cs +++ b/tests/AcDream.App.Tests/Rendering/EquippedChildProjectionWithdrawalTests.cs @@ -12,6 +12,7 @@ using AcDream.Core.Net.Messages; using AcDream.Core.World; using DatReaderWriter.DBObjs; using DatReaderWriter.Enums; +using AcDream.Runtime.Entities; using DatReaderWriter.Types; namespace AcDream.App.Tests.Rendering; diff --git a/tests/AcDream.App.Tests/World/LiveEntityHydrationControllerTests.cs b/tests/AcDream.App.Tests/World/LiveEntityHydrationControllerTests.cs index 3574b6e7..b4ef508b 100644 --- a/tests/AcDream.App.Tests/World/LiveEntityHydrationControllerTests.cs +++ b/tests/AcDream.App.Tests/World/LiveEntityHydrationControllerTests.cs @@ -9,6 +9,7 @@ using AcDream.Core.Net; using AcDream.Core.Net.Messages; using AcDream.Core.Physics; using AcDream.Core.World; +using AcDream.Runtime.Entities; namespace AcDream.App.Tests.World; diff --git a/tests/AcDream.App.Tests/World/LiveEntityRuntimeTests.cs b/tests/AcDream.App.Tests/World/LiveEntityRuntimeTests.cs index f0dd7c8d..f135f334 100644 --- a/tests/AcDream.App.Tests/World/LiveEntityRuntimeTests.cs +++ b/tests/AcDream.App.Tests/World/LiveEntityRuntimeTests.cs @@ -9,6 +9,7 @@ using AcDream.Core.Net.Messages; using AcDream.Core.Physics; using AcDream.Core.Vfx; using AcDream.Core.World; +using AcDream.Runtime.Entities; using DatReaderWriter.DBObjs; using DatReaderWriter.Types; using DatPhysicsScript = DatReaderWriter.DBObjs.PhysicsScript; diff --git a/tests/AcDream.App.Tests/World/LiveEntitySameGenerationUpdateRouterTests.cs b/tests/AcDream.App.Tests/World/LiveEntitySameGenerationUpdateRouterTests.cs index d63245e6..299fde10 100644 --- a/tests/AcDream.App.Tests/World/LiveEntitySameGenerationUpdateRouterTests.cs +++ b/tests/AcDream.App.Tests/World/LiveEntitySameGenerationUpdateRouterTests.cs @@ -1,6 +1,7 @@ using AcDream.App.World; using AcDream.Core.Net; using AcDream.Core.Net.Messages; +using AcDream.Runtime.Entities; using AcDream.Core.Physics; namespace AcDream.App.Tests.World; diff --git a/tests/AcDream.App.Tests/World/InboundPhysicsStateControllerTests.cs b/tests/AcDream.Runtime.Tests/Entities/InboundPhysicsStateControllerTests.cs similarity index 99% rename from tests/AcDream.App.Tests/World/InboundPhysicsStateControllerTests.cs rename to tests/AcDream.Runtime.Tests/Entities/InboundPhysicsStateControllerTests.cs index 5bcaa934..0b0b0259 100644 --- a/tests/AcDream.App.Tests/World/InboundPhysicsStateControllerTests.cs +++ b/tests/AcDream.Runtime.Tests/Entities/InboundPhysicsStateControllerTests.cs @@ -1,10 +1,10 @@ using System.Numerics; -using AcDream.App.World; using AcDream.Core.Net; using AcDream.Core.Net.Messages; using AcDream.Core.Physics; +using AcDream.Runtime.Entities; -namespace AcDream.App.Tests.World; +namespace AcDream.Runtime.Tests.Entities; public sealed class InboundPhysicsStateControllerTests { diff --git a/tests/AcDream.App.Tests/World/ParentAttachmentStateTests.cs b/tests/AcDream.Runtime.Tests/Entities/ParentAttachmentStateTests.cs similarity index 99% rename from tests/AcDream.App.Tests/World/ParentAttachmentStateTests.cs rename to tests/AcDream.Runtime.Tests/Entities/ParentAttachmentStateTests.cs index 5a1dd98b..dcdd433c 100644 --- a/tests/AcDream.App.Tests/World/ParentAttachmentStateTests.cs +++ b/tests/AcDream.Runtime.Tests/Entities/ParentAttachmentStateTests.cs @@ -1,10 +1,10 @@ -using AcDream.App.World; using AcDream.Core.Net; using AcDream.Core.Net.Messages; using AcDream.Core.Physics; using AcDream.Core.Items; +using AcDream.Runtime.Entities; -namespace AcDream.App.Tests.World; +namespace AcDream.Runtime.Tests.Entities; public sealed class ParentAttachmentStateTests {