fix(physics): #30 #34 L.2a movement truth diagnostics

Pass explicit grounded/airborne contact bytes from MovementResult into MoveToState and AutonomousPosition, and add ACDREAM_DUMP_MOVE_TRUTH logging for outbound movement plus player UpdatePosition echoes.

Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
Erik 2026-04-29 21:52:53 +02:00
parent d4c3f947d2
commit 3be0c8b7c7
5 changed files with 166 additions and 56 deletions

View file

@ -105,6 +105,23 @@ public class AutonomousPositionTests
Assert.Equal(56, body.Length);
}
[Fact]
public void Build_UsesExplicitAirborneContactByte()
{
var body = AutonomousPosition.Build(
gameActionSequence: 7,
cellId: 0xA9B40001u,
position: Vector3.Zero,
rotation: Quaternion.Identity,
instanceSequence: 0,
serverControlSequence: 0,
teleportSequence: 0,
forcePositionSequence: 0,
lastContact: 0);
Assert.Equal(0, body[52]);
}
[Fact]
public void Build_ContainsIdentityRotation_AfterPosition()
{

View file

@ -142,6 +142,30 @@ public class MoveToStateTests
Assert.Equal(0, body.Length % 4);
}
[Fact]
public void Build_UsesExplicitAirborneContactByte()
{
var body = MoveToState.Build(
gameActionSequence: 7,
forwardCommand: null,
forwardSpeed: null,
sidestepCommand: null,
sidestepSpeed: null,
turnCommand: null,
turnSpeed: null,
holdKey: null,
cellId: 0xA9B40001u,
position: Vector3.Zero,
rotation: Quaternion.Identity,
instanceSequence: 0,
serverControlSequence: 0,
teleportSequence: 0,
forcePositionSequence: 0,
contactLongJump: 0);
Assert.Equal(0, body[56]);
}
[Fact]
public void Build_WithHoldKey_IncludesHoldKeyFlag()
{