speed_law.py locks onto the player entity once and samples its position while holding each throttle input, differentiating over 1-second windows. no throttle -> ~420 (CruisingVelocity 350) RT held -> ~1 530 (MaximumVelocity 1200) LT held -> ~125 (MinimumVelocity 100) release -> back to cruise, from either direction So the throttle SELECTS a target speed rather than adding thrust — which is what a reimplementation would most likely have assumed from Acceleration/Deceleration alone. Those govern the convergence rate instead: ~440 units/s^2 measured on release (Deceleration 500) and ~470-560 under RT (Acceleration 600). Recorded as 🟡: measured world speeds run ~1.2-1.3x the definition numbers in all three regimes while the HUD shows the definition value exactly (350 at cruise), so world coordinates are a constant multiple (~1.25) of the definition's velocity unit; the spread is wider than the constant is precise because the craft manoeuvres while sampled. Three traps documented: RT/LT are analogue triggers (the button verb is a silent no-op and the first run measured an unflown craft), per-sample differentiation aliases against the guest's update rate (0, 1519, 1985, 0, 2681 for smooth flight), and the player entity only enters the typed scan ~15 s in while the craft dies within minutes if nobody flies it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
3.6 KiB
3.6 KiB