Commit Graph

10415 Commits

Author SHA1 Message Date
Aurélien Vivet cb5fc3145c Take into account the biggest side 2026-05-28 11:20:46 +02:00
Aurélien Vivet 39aa60d221 Merge branch 'master' into collision-debug-view 2026-05-28 11:02:41 +02:00
Florian Rival 112100c88a Improve display of sub-agents/tasks (#8649)
Don't show in changelog
2026-05-27 17:34:47 +02:00
D8H 3e66b02bad Automatically choose a function name in the function extraction dialog (#8648) 2026-05-27 17:24:54 +02:00
github-actions[bot] 8ecf20f24b [Auto PR] Update translations (#8629) 2026-05-27 16:16:34 +02:00
Clément Pasteau aafa107010 Fix decimal values not updating number fields (#8642) 2026-05-27 16:16:06 +02:00
Clément Pasteau 7c9f6d1998 New role added on Discord for Silver subscribers (#8644)
* Also a subscriber icon (Silver, Gold, Pro, Education) is now visible on your forum account, if you use the same email between your GDevelop and your forum
2026-05-27 15:19:51 +02:00
Clément Pasteau 46f1f8f120 Fix sub cancelled event (#8645)
Do not show in changelog
2026-05-27 15:17:33 +02:00
D8H d453623481 Add help page links to some effects reference help pages (#8646) 2026-05-27 13:06:48 +02:00
Aurélien Vivet 94caf2b972 Merge branch 'master' into collision-debug-view 2026-05-27 12:54:30 +02:00
D8H 82632b9841 Fix broken links to reference pages in the documentation (#8643) 2026-05-26 15:15:37 +02:00
Florian Rival a465f2b1c7 Add display support for new tool in EditorFunctions
Don't show in changelog
2026-05-26 10:28:51 +02:00
Gleb Volkov eabcf11f35 Add option "keepTerminalOpen" toolbar npm scripts (#8637) 2026-05-22 17:40:10 +02:00
Clément Pasteau a434cd5e3b Fix gravity not being taken into account for Physics3D (#8636)
Fix #8605
2026-05-22 11:52:58 +02:00
Clément Pasteau 8b00514aff Fix path breaking webapp (#8635)
Do not show in changelog
2026-05-22 11:15:39 +02:00
Florian Rival 4bf059912f Rework AI request handling to support sub-agents and better analysis/advice/answers from the AI (#8574)
Co-authored-by: Clément Pasteau <4895034+ClementPasteau@users.noreply.github.com>
2026-05-21 18:12:59 +02:00
Florian Rival d57a3960ed Add extra CI checking an export using the CLI options of GDevelop (#8632)
- Done daily and after every builds on master.

Only show in developer changelog
2026-05-21 16:46:14 +02:00
Florian Rival 080bc15f56 Add missing override specifiers to event classes (#8633)
Don't show in changelog
2026-05-21 16:31:37 +02:00
Gleb Volkov c65f953f41 Add argument for CLI command execution for CI pipelines (#8587)
- Add `--run-command` CLI flag that executes any Command Palette command after loading a project.
In CLI mode all blocking dialogs (autosave, changelog, confirmations) are auto-resolved, the window is hidden, and the process exits with a meaningful exit code.
- This enables CI pipelines to run exports (e.g. `EXPORT_HTML5_EXTERNAL`) using only the editor distribution - no installation or display required.
2026-05-21 13:35:21 +02:00
Florian Rival 12867be225 Fix potential crashes (#8625)
And add GDCore tests with ASan/UBSan as a new CI job to catch any regression in the future
2026-05-21 12:46:30 +02:00
D8H 3f94e7dd1e Reduce dialog width for extension details, project properties and layer properties (#8628) 2026-05-21 12:10:12 +02:00
D8H e3f3a1ffac Fix editor crashes after modifying custom object extensions (#8626) 2026-05-20 18:33:18 +02:00
opaldi 749a78650b Persist the preference "Start all previews from scene X" in the project file (#8622) 2026-05-20 16:49:23 +02:00
D8H 6dc9ed5d2c Fix minus sign color for negative numbers (#8621)
Don't show in changelog
2026-05-20 16:35:51 +02:00
Florian Rival 59e5a7ae8e Only run Travis for master branch and PR to master 2026-05-20 16:18:19 +02:00
ViktorVovk f39d8bb080 Add experimental support for "canonical" serialization of events (#8552)
- When activated, the JSON of the project is saved with properties always in alphabetical order. Fields in events are also never omitted.
- The preference is controlled via `gdevelop-settings.yaml` (already read
by the IDE on project open):

  ```yaml
  # gdevelop-settings.yaml
  preferences:
    canonicalEventSerialization: true
  ```

Only show in developer changelog
Co-authored-by: Viktor Vovk <vvovk@playtika.com>
2026-05-20 16:10:12 +02:00
github-actions[bot] a987d2c4b3 [Auto PR] Update translations (#8601) 2026-05-19 16:22:18 +02:00
Clément Pasteau 5aed979a02 Fix regression when dragging events on iOS touch devices (#8616) 2026-05-19 16:21:58 +02:00
D8H 374a5670c5 No longer use bold for objects inside expressions (#8618)
Don't show in changelog
2026-05-19 16:20:46 +02:00
D8H 39991b7fc8 Remove a useless message wrongly displayed when updating an extension without any dependencies (#8617) 2026-05-19 15:55:34 +02:00
D8H ae3e4e6ed0 Fix a regression on "edit or add variable" allowing to add variable with an empty name (#8614)
Don't show in changelog
2026-05-19 12:01:16 +02:00
D8H bd054aa49b Fix operator color in conditions (#8613)
Don't show in changelog
2026-05-19 11:34:36 +02:00
D8H 17ace4e36f Display boolean parameters in pink (#8612) 2026-05-19 10:50:35 +02:00
D8H 830587f25b Fix object parameter color in expression (#8611)
Don't show in changelog
2026-05-18 19:42:10 +02:00
D8H 032b93f0e2 Fix copied events to keep the same order when pasted (#8610) 2026-05-18 18:24:59 +02:00
D8H cea1410fb3 Add syntax highlighting for expressions in events (#8538)
Complex expressions and formula will now be shown using multiple colors, like the rest of events. This allows to identify objects, numbers, strings in a long formula.
2026-05-18 18:10:00 +02:00
Florian Rival 391caaddf4 Add internal hints for objects without known width/height (#8608)
Don't show in changelog
2026-05-17 13:38:23 +02:00
D8H d9d8a7d3ea Fix a regression on the displayed position of custom objects (#8604) 2026-05-16 13:38:28 +02:00
D8H c8d5f4600c Add a button in the extension editor to select behaviors with the dialog (#8602) 2026-05-15 11:30:00 +02:00
D8H f9d1d4c60c Fix and show the button to add parameters to "action with operator" functions as disabled (#8603) 2026-05-15 11:29:59 +02:00
D8H d81a6899dd Allow to create variables from autocompletion in more cases (#8583)
Also, in the extension editor: 
- Focus and select new parameter names
- Allow to add a new parameter from the variable autocompletion
- Allow to add behaviors from the bottom of the instruction list
2026-05-14 16:24:24 +02:00
D8H cacd28eed7 Add a "layer" property type for custom behaviors (#8596) 2026-05-14 12:50:25 +02:00
D8H e2de846279 Allow to load and unload objects from other scenes (#8592)
- Also fix manually loaded objects not being unload with their scene
2026-05-14 10:56:19 +02:00
ViktorVovk 584cca2d43 Export classes in ResourceLoader for better TypeScript compatibility (#8594)
Only show in developer changelog
2026-05-14 10:21:47 +02:00
Aurélien Vivet 98af5082fe feat(editor): add 3D collision toggle in the Layers panel for in-app editor
Add a Debug-icon button next to the Lightbulb in the root row of the
Layers tree view (only when in embedded-game / in-app editor mode).
Clicking it toggles the local state `areCollisionsShownInEditor` in
SceneEditor and broadcasts a `set3DCollisionsShownInEditor` message
to the embedded preview frames via `previewDebuggerServer`.

The runtime debugger client receives the command and calls
`enableDebugDraw3D` on the edited instance container, reusing the
default color and depth-test settings.

Props are threaded through the `EditorsDisplay` interface, both
mosaic and swipeable-drawer displays, plus the LayersList story mock.
2026-05-13 22:19:04 +02:00
Aurélien Vivet 2974b9c052 feat(debuggertools): add actions to enable/toggle 3D debug draw
Expose the new 3D debug-draw via two GDevelop actions in the Debugger
Tools extension:

- `EnableDebugDraw3D` — enable/disable with explicit color (R;G;B)
  and depth-test parameters. Mirrors the existing `EnableDebugDraw`
  action used for 2D.
- `ToggleDebugDraw3D` — flips the current state, reusing the last
  color and depth-test values stored on the instance container.

Both delegate to `RuntimeInstanceContainer.enableDebugDraw3D`.
2026-05-13 22:19:04 +02:00
Aurélien Vivet c8f55dd99a feat(gdjs): render 3D collision wireframes in the debugger renderer
Implement `renderDebugDraw3D` and `clearDebugDraw3D` on
DebuggerPixiRenderer. Wireframes are rendered as THREE.js meshes
attached to each object's 3D renderer object.

Supports the four Physics3D primitive shapes (Box, Sphere, Capsule,
Cylinder) including orientation (X/Y/Z), shape offsets, parent-scale
compensation, and the PhysicsCharacter3D bottom-origin adjustment.

Also supports the Mesh shape: each child mesh of the object's 3D
renderer is wrapped with a `THREE.WireframeGeometry` + LineSegments.
Async-loaded Model3D meshes are picked up automatically each frame,
and detached source meshes are pruned.

State is tracked in a `Map<RuntimeObject, DebugDraw3DState>` on the
renderer, with a per-frame `seen` set that disposes wireframes whose
owning object disappeared. CustomRuntimeObject children are visited
recursively so nested Physics3D objects are covered.

Wireframes opt out of raycasting (`mesh.raycast = () => {}`) so that
the community Raycaster3D extension doesn't crash on intersections
without normals.
2026-05-13 22:19:03 +02:00
Aurélien Vivet 480a155cef feat(gdjs): add 3D debug-draw infrastructure mirroring the 2D pattern
Add `_debugDraw3DEnabled`, `_debugDraw3DColorHex` and
`_debugDraw3DDepthTest` to RuntimeInstanceContainer, plus a new
`enableDebugDraw3D(enabled, colorHex, depthTest)` method that mirrors
the existing 2D `enableDebugDraw`. When the settings change while a
draw is active, the existing wireframes are cleared so the renderer
rebuilds them with the new configuration.

`RuntimeScene.renderAndStep` calls `renderDebugDraw3D` each frame when
the flag is on — same hook point as the 2D debug draw.

The actual rendering is implemented in a follow-up commit.
2026-05-13 22:19:03 +02:00
Aurélien Vivet ba7903f54c feat(physics3d): support hot reload of shape and physics properties
Extract the field initialization from the constructor into a private
`_applyBehaviorData` helper, and reuse it for both the constructor
(full data) and the hot-reload hook `applyBehaviorOverriding` (diff
containing only changed fields). When any shape-related property is
present in the diff, the body is rebuilt via `recreateBody()`.

Previously the default `applyBehaviorOverriding` returned false, so
hot reload of Physics3D properties was silently dropped, forcing a
full restart of the app or closing and reopening the tab to see any
tweak made in the editor.
2026-05-13 22:18:57 +02:00
Aurélien Vivet 3e3b7bcd71 fix(editor): trigger hot reload when a behavior property is edited
`onBehaviorUpdated` in CompactObjectPropertiesEditor was a no-op, so
editing behavior properties from the compact panel never propagated
to the in-app editor preview. Wire it to `onObjectsModified([object])`
like the other property edits in the same file. Debounced at 250ms
via `useDebounce` to avoid one hot reload per keystroke on fields.
2026-05-13 21:43:44 +02:00