feat(physics): port retail complete object frame pipeline
Restore the named-retail object update order across local, remote, static, projectile, animation, shadow, teleport, and effect lifetimes. Separate authoritative root commits from spatial rebucketing, preserve per-owner hook/FIFO ordering, and remove update-path allocations with exact lifecycle and residency gates. Add deterministic conformance, adversarial lifetime, GUID-reuse, pending-cell, quaternion, timestamp, and allocation coverage. Release build is warning-free and all 6,446 tests pass with five intentional skips; retail, architecture, and adversarial reviews are clean. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
31a0889f08
commit
f961d70023
77 changed files with 12513 additions and 1871 deletions
|
|
@ -104,6 +104,40 @@ public sealed class ProjectilePhysicsStepperTests
|
|||
Assert.Equal(50f, body.CachedVelocity.Y, 3);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SplitQuantum_HoldsBeginFrameAcrossHookSlotThenCommitsCandidate()
|
||||
{
|
||||
var (engine, _) = BuildEmptyEngine();
|
||||
var body = MakeBody(
|
||||
new Vector3(12f, 10f, 2f),
|
||||
new Vector3(10f, 0f, 0f));
|
||||
var stepper = new ProjectilePhysicsStepper(engine);
|
||||
Vector3 begin = body.Position;
|
||||
|
||||
ProjectileQuantumPreparation preparation = stepper.BeginQuantum(
|
||||
body,
|
||||
0.1f,
|
||||
Cell,
|
||||
ArrowSphere);
|
||||
|
||||
Assert.True(preparation.Simulated);
|
||||
Assert.True(preparation.RequiresTransition);
|
||||
Assert.Equal(begin, body.Position);
|
||||
Assert.Equal(begin + Vector3.UnitX, preparation.CandidatePosition);
|
||||
|
||||
ProjectileAdvanceResult result = stepper.CompleteQuantum(
|
||||
body,
|
||||
preparation,
|
||||
ArrowSphere,
|
||||
ProjectileId);
|
||||
|
||||
Assert.True(result.Simulated);
|
||||
Assert.InRange(
|
||||
Vector3.Distance(begin + Vector3.UnitX, body.Position),
|
||||
0f,
|
||||
0.00001f);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Advance_GravityUsesFinalPhysicsState_NotParsedAcceleration()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue