refactor(runtime): own projectile simulation
Move projectile component identity, prediction invalidation, spatial worksets, authoritative corrections, and the retail physics step into AcDream.Runtime. Keep App as the DAT-shape and presentation adapter so ACE outcomes and visible behavior remain unchanged.
This commit is contained in:
parent
fce8e7b18e
commit
2aee33569f
19 changed files with 1255 additions and 335 deletions
|
|
@ -3,6 +3,7 @@ using System.Reflection;
|
|||
using AcDream.App.Physics;
|
||||
using AcDream.App.Rendering;
|
||||
using AcDream.App.World;
|
||||
using AcDream.Core.Physics;
|
||||
|
||||
namespace AcDream.App.Tests.World;
|
||||
|
||||
|
|
@ -161,6 +162,18 @@ public sealed class GameWindowLiveEntityCompositionTests
|
|||
Assert.Equal(
|
||||
typeof(LiveWorldOriginState),
|
||||
Assert.Single(projectileFields, field => field.Name == "_origin").FieldType);
|
||||
Assert.Equal(
|
||||
typeof(RuntimeProjectilePhysicsUpdater),
|
||||
Assert.Single(
|
||||
projectileFields,
|
||||
field => field.Name == "_runtimeUpdater").FieldType);
|
||||
Assert.DoesNotContain(
|
||||
projectileFields,
|
||||
field => field.FieldType == typeof(PhysicsEngine)
|
||||
|| field.FieldType == typeof(ProjectilePhysicsStepper)
|
||||
|| field.FieldType.IsGenericType
|
||||
&& field.FieldType.GetGenericTypeDefinition()
|
||||
== typeof(Dictionary<,>));
|
||||
Assert.DoesNotContain(
|
||||
projectileFields,
|
||||
field => typeof(Delegate).IsAssignableFrom(field.FieldType)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue