Code review flagged two latent correctness bugs in Pick: 1. The single t = -b - sqrt(d) intersection skipped entities whose 5m bounding sphere contained the ray origin. Realistic at point-blank range — if the player stands within ~5m of a door, the near-plane sits inside the door's bounding sphere and the door becomes unpickable. Standard fix: when t_near < 0 fall through to t_far = -b + sqrt(d) (the sphere exit point). 2. The discriminant formula assumes |direction| = 1. BuildRay currently normalizes so the assumption holds at the wire, but the contract wasn't documented. Added an explicit <param name="direction"> note. New test Pick_RayOriginInsideEntitySphere_StillReturnsServerGuid covers the inside-sphere case. Suite: 9/9 WorldPicker tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| AcDream.Core.Net.Tests | ||
| AcDream.Core.Tests | ||
| AcDream.Core.Tests.Fixtures.HelloPlugin | ||
| AcDream.UI.Abstractions.Tests | ||