feat(render): Phase A8.F — wire camera-collision probe + cell/self id into GameWindow

Both RetailChaseCamera construction sites now supply CollisionProbe with a
fresh PhysicsCameraCollisionProbe(_physicsEngine).  The per-frame Update
call gains cellId: _playerController.CellId and selfEntityId:
_playerController.LocalEntityId so the probe has the correct spatial
context for sphere-sweep queries.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-05-29 19:38:58 +02:00
parent 45a4218fab
commit e37cc150a8

View file

@ -6863,7 +6863,9 @@ public sealed class GameWindow : IDisposable
playerVelocity: _playerController.BodyVelocity,
isOnGround: result.IsOnGround,
contactPlaneNormal: _playerController.ContactPlane.Normal,
dt: (float)dt);
dt: (float)dt,
cellId: _playerController.CellId,
selfEntityId: _playerController.LocalEntityId);
// Send outbound movement messages to the live server.
if (_liveSession is not null)
@ -10693,6 +10695,7 @@ public sealed class GameWindow : IDisposable
_retailChaseCamera = new AcDream.App.Rendering.RetailChaseCamera
{
Aspect = _chaseCamera.Aspect,
CollisionProbe = new AcDream.App.Rendering.PhysicsCameraCollisionProbe(_physicsEngine),
};
}
_cameraController.EnterChaseMode(_chaseCamera, _retailChaseCamera);
@ -10826,6 +10829,7 @@ public sealed class GameWindow : IDisposable
_retailChaseCamera = new AcDream.App.Rendering.RetailChaseCamera
{
Aspect = _window!.Size.X / (float)_window.Size.Y,
CollisionProbe = new AcDream.App.Rendering.PhysicsCameraCollisionProbe(_physicsEngine),
};
// K.1b: _playerMouseDeltaX is no longer consumed by
// MovementInput, but we still reset it here so any stale