fix(app): Phase B.2 — use server position directly, fix yaw wrap + turn spam
Three more fixes from the diagnostic dump: 1. Initial position: PhysicsEngine.Resolve was mapping the player into an indoor EnvCell (foundry at Z=66) when they're standing on outdoor terrain at Z=93+. The cell-containment check was too aggressive for initial placement. Now uses the server-sent position directly — the server already gave us a valid position. 2. Yaw unbounded: mouse delta accumulated without wrapping, growing to 24+ radians. Now wraps to [-PI, PI] after every turn. 3. Turn command spam: MouseDeltaX > 0.5 threshold was too low for raw pixel deltas. Any mouse jitter triggered turnCmd flips every frame → stateChanged=True → MoveToState flood to the server. Mouse turning now only affects yaw directly; turn COMMANDS only come from A/D keyboard (matching retail client behavior where mouse-look doesn't generate a TurnRight/TurnLeft command). 265 tests still green. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6202c5d153
commit
97c17c5bc3
3 changed files with 39 additions and 8 deletions
|
|
@ -21,6 +21,9 @@ public sealed class PhysicsEngine
|
|||
{
|
||||
private readonly Dictionary<uint, LandblockPhysics> _landblocks = new();
|
||||
|
||||
/// <summary>Number of registered landblocks (diagnostic).</summary>
|
||||
public int LandblockCount => _landblocks.Count;
|
||||
|
||||
private sealed record LandblockPhysics(
|
||||
TerrainSurface Terrain,
|
||||
IReadOnlyList<CellSurface> Cells,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue