The pointer positions given by TransformControls are in the Three.js
world, which is now scaled down by the renderer 3D world scale, while the
sizes they are compared to are in scene units. Without converting them,
dragging a scale handle barely resized the objects.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01HdyuCYDD8w7U2Q3p1aHY5M
Resolve the conflict in the in-game editor: keep the TransformControls
helper (Three.js r169+ API) and the world scale on it, and apply the new
patch removing the axis guide lines.
Also adapt code added on master to the upgrade:
- Add the renderer3DWorldScale to the scene data of the new
PhysicsCharacter3D test.
- Give Source its type argument, now required by @types/three.
- Rename the @types/three patch to the installed version (0.185.1), so
patch-package stops warning about it.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01HdyuCYDD8w7U2Q3p1aHY5M
- Add autocompletion with brackets access for structures and arrays.
- Improve error messages when brackets are empty.
- Fix autocompletion of variable parameters in function calls wrongly
suggesting objects and functions.
- Only display relevant variables in autocompletion according to their
type.
- Display an error when string, number or boolean variable is used and a
structure or an array is expected and the other way around.
- The warning about a custom object with no child in it ("it renders
nothing") fired on ParticleEmitter3D, Light3D or Text3D objects, which
are drawn by the JavaScript code of their extension (with Three.js) and
legitimately have no child. Skip it when the code replaced the renderer
of the object, or added something to draw (a mesh, a sprite, a
graphics...) in the stock renderer's container.
- The game-side wall-clock watchdog did not exclude the time the page
spent hidden (frozen by the browser), unlike the guards of the stepping
loop: a test run in a background tab or a covered window was reported as
a plain "timeout" instead of being given up on as paused by the editor.
Exclude it, and tell about that time in the timeout message.
- Reject a non-string object name with a clear error instead of asking
the scene for "[object Object]" (which registered a phantom object list
and silently found nothing), the mistake `lookTowardWithMouseDelta`
invites when the target is passed first.