Commit graph

4276 commits

Author SHA1 Message Date
SaracenOne
15e2ddbbc0 Add read only mode to SpriteFrames editor. 2022-09-06 14:47:13 +01:00
Rémi Verschelde
7b5d1ea5b9 Fix various uninitialized member pointers
Using this command:
```
find -name "thirdparty" -prune -o -name "*.h" -exec sed -i {} -e '/return /! s/\t\([A-Za-z0-9_]* \*[A-Za-z0-9_]*\)\;/\t\1 = nullptr;/g' \;
```

And then reviewing the changes manually to discard the ones that don't
seem correct/safe/good (notably changes to `core` unions).
2022-09-06 11:20:27 +02:00
Rémi Verschelde
c36735ef97
Merge pull request #65402 from m4gr3d/disable_android_editor_auto_focus_main 2022-09-06 10:14:49 +02:00
Rémi Verschelde
017c4f5608
Merge pull request #65354 from V-Sekai/state_machine_freeze_new_transition 2022-09-06 10:13:43 +02:00
Fredia Huya-Kouadio
841b4dfeeb Disable logic that triggers automatic focus gain as the Godot Editor is loaded
For the Godot Android Editor, this is an inconvenience as it causes the soft keyboard to show and block half of the view
2022-09-05 22:33:01 -07:00
Micky
b6daad8d4b Rename range_lerp to remap 2022-09-06 07:19:20 +02:00
Micky
694190a354 Rename TileMap/GridMap.world_to_map and opposite to local_to_map
For both TileMap and GridMap:
- `world_to_map` -> `local_to_map`
- `map_to_world` -> `map_to_local`

Also changes any mention of "world" in this context to "local" to avoid future confusion.

Finally, updates the docs of both methods for consistency.
In particular, adding a note on how to convert the returned values from local to global coordinates and vice versa.
2022-09-05 18:08:39 +02:00
Rémi Verschelde
3e6c342995
Merge pull request #65306 from Rindbee/fix-Skeleton3DEditor-causing-crash-in-sanitizer-enabled-builds 2022-09-05 13:42:09 +02:00
SaracenOne
dae05fd249 Fix UndoRedo when creating new AnimationStateMachine transition and node. 2022-09-05 11:56:50 +01:00
SaracenOne
f4c7823a06 Freeze line when releasing mouse to create a new transition. 2022-09-05 10:39:15 +01:00
Aaron Franke
995b9f94e8
Replace Rect2(i) has_no_area with has_area 2022-09-04 23:03:36 -05:00
Rindbee
e73cac8999 Fix Skeleton3DEditor causing crash in sanitizer enabled builds
The life cycle of the `Skeleton3DEditor` singleton is too short, and when it is destroyed,
part of the logic needs to be called when its child nodes exist.
2022-09-04 09:20:06 +08:00
Rindbee
6c9726e7a7 Fix Skeleton3DEditor crash 2022-09-03 15:59:59 +08:00
Rémi Verschelde
fe2cf6e406 Merge pull request #65210 from YuriSizov/control-customizable-cache-p3 2022-09-02 13:51:52 +02:00
Rémi Verschelde
c82bbc38a5 Merge pull request #64952 from Chaosus/vs_rename_uniform_to_param 2022-09-02 13:49:53 +02:00
Yuri Sizov
fc7cef8dec Fix theme propagation in various parts of the editor 2022-09-02 13:18:31 +03:00
Jonathan Nicholl
15d057c521 Add is_zero_approx methods to Vector2, 3, and 4 2022-09-02 00:29:50 -04:00
Rémi Verschelde
5263fd5343 Merge pull request #64198 from Geometror/add-bitmap-tests 2022-09-01 23:46:38 +02:00
Rémi Verschelde
2e0cffdb6f Merge pull request #63479 from DarkKilauea/nav-link 2022-09-01 23:44:22 +02:00
Rémi Verschelde
181019cea5 Merge pull request #65135 from reduz/export-customization-plugins 2022-09-01 23:43:39 +02:00
Hendrik Brucker
ea0472fecf Refactor BitMap and add tests
Co-authored-by: Resul Çelik <resul_celik@hotmail.com>
2022-09-01 18:39:17 +02:00
Juan Linietsky
ef17c4668a Add support for scene/resource customization in export plugins
EditorExportPlugin adds a set of callbacks to allow customizing scenes, resources or subresources in all files exported:
* Can take scene files, resource files and subresources in all of them.
* Uses a cache for the converted files if nothing changes, so this work only happens if a file is modified.
* Uses hashing to differentiate export configuration caches.
* Removed the previous conversion code to binary, as this one uses existing stuff.

This API is useful in several scenarios:
* Needed by the "server" export platform to get rid of textures, meshes, audio, etc.
* Needed by text to binary converters.
* Needed by eventual optimizations such as shader precompiling on export, mesh merging and optimization, etc.

This is a draft, feedback is very welcome.
2022-09-01 11:16:00 +02:00
Yuri Rubinsky
8191b3c110 Rename uniform to parameter across the engine 2022-09-01 11:42:57 +03:00
Rémi Verschelde
0c221f0284
Merge pull request #65124 from zhehangd/fix_basis 2022-09-01 09:36:11 +02:00
Rémi Verschelde
d22f2612f9
Merge pull request #65162 from YuriSizov/editor-gradients-united
Unite `GradientEdit` and `GradientEditor` as editor-only widget
2022-09-01 08:30:16 +02:00
Zhehang Ding
69fe6336f1 Basis constructor: row vectors -> column vectors 2022-08-31 21:20:25 -07:00
Yuri Sizov
93078ea551 Unite GradientEdit and GradientEditor as editor-only widget 2022-08-31 23:45:04 +03:00
clayjohn
385ee5c70b Implement Physical Light Units as an optional setting.
This allows light sources to be specified in physical light units in addition to the regular energy multiplier. In order to avoid loss of precision at high values, brightness values are premultiplied by an exposure normalization value.

In support of Physical Light Units this PR also renames CameraEffects to CameraAttributes.
2022-08-31 12:14:46 -07:00
Rémi Verschelde
fbf8632556
Merge pull request #64247 from guilhermefelipecgs/fix_end_node
Re-add AnimationNodeStateMachine::end_node for root state machine
2022-08-31 17:40:38 +02:00
Rémi Verschelde
96b470b28e
Merge pull request #63394 from Calinou/curve-gradient-rename-interpolate
Rename Curve/Curve2D/Curve3D/Gradient `interpolate()` to `sample()`
2022-08-31 08:37:12 +02:00
Hugo Locurcio
ae18928748
Rename Curve/Curve2D/Curve3D/Gradient interpolate() to sample()
"sampling" is a more accurate term than "interpolating" for what's
happening when using that function.
2022-08-30 22:08:38 +02:00
Twarit Waikar
a62b0ec904 VCS: Improve VCS UI/UX by QoL changes
The editor will now use the project path i.e. the place where the root of
the repo is supposed to be according to the user. This project path is
also sent into the plugin and so out-of-directory asset folders can also be
maintained this way.
2022-08-31 00:27:08 +05:30
Twarit Waikar
1bb5e65798 VCS: Replace usage of varray() by using callable_mp::bind() 2022-08-31 00:01:42 +05:30
Twarit Waikar
c698e4f5f9 VCS: Fix empty metadata items being moved across stages 2022-08-31 00:01:42 +05:30
Twarit Waikar
ef9885f81a VCS: Load a GDExtension instead of Script + UI port from 3.5 2022-08-31 00:01:42 +05:30
Twarit Waikar
4656ea8977 VCS: Port Godot 3.5's VCS features to GDExtension 2022-08-31 00:01:42 +05:30
Rémi Verschelde
02d510bd07
Merge pull request #63003 from Geometror/msaa-2d 2022-08-30 14:54:20 +02:00
Rémi Verschelde
ae349d8227
Merge pull request #64377 from Mickeon/rename-canvas-redraw
Rename `CanvasItem.update()` to `queue_redraw()`
2022-08-30 14:47:41 +02:00
Rémi Verschelde
0bf3f79157
Merge pull request #63902 from dalexeev/string-cases 2022-08-30 14:06:28 +02:00
Rémi Verschelde
ebe4f8d3a4
Merge pull request #65039 from Mickeon/rename-treeitem-tooltip 2022-08-30 14:05:08 +02:00
Danil Alexeev
d4555ef5fb
Add String.to_{camel,pascal,snake}_case methods 2022-08-30 12:36:24 +03:00
Micky
97f8c9b97c Rename TreeItem's set_tooltip to set_tooltip_text
`set_tooltip` -> `set_tooltip_text`
`get_tooltip` -> `get_tooltip_text`

For consistency:
`get_button_tooltip` -> `get_button_tooltip_text`
And the `tooltip` parameter in `add_button` was renamed to `tooltip_text`
2022-08-30 11:16:23 +02:00
Rémi Verschelde
432b25d364
Merge pull request #65066 from aaronfranke/str-path-join 2022-08-30 10:01:11 +02:00
Rémi Verschelde
21b218c9ea
Merge pull request #65053 from YuriSizov/editor-bones-but-no-meat
Properly handle theme changes in the Skeleton3DEditor
2022-08-30 08:45:07 +02:00
Rémi Verschelde
4d7628be85
Merge pull request #45764 from gongpha/update-animation-tree-editor-when-selected
Update all AnimationTree's editors when editing
2022-08-30 08:37:11 +02:00
Aaron Franke
10a56981dc
Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
Yuri Sizov
1839ec96a7 Properly handle theme changes in the Skeleton3DEditor 2022-08-29 21:39:56 +03:00
Kongfa Waroros
0f17fe642c Update all AnimationTree's editors when editing 2022-08-30 01:04:34 +07:00
Yuri Sizov
88ab58821d Fix some editor theme regressions 2022-08-29 18:01:41 +03:00
Micky
e31bb5ffeb Rename CanvasItem.update() to queue_redraw()
Affects a lot of classes. Very thoroughly checked signal connections and deferred calls to this method, add_do_method/add_undo_method calls, and so on.

Also renames the internal `_update_callback()` to `_redraw_callback()` for consistency.

Just a few comments have also been changed to say "redraw".

In CPUParticles2D, there was a private variable with the same name. It has been renamed to `do_redraw`.
2022-08-29 14:59:47 +02:00
Rémi Verschelde
e60086f98b
Merge pull request #64119 from YuriSizov/theme-init-database 2022-08-29 14:02:21 +02:00
Rémi Verschelde
322c812231
Merge pull request #65023 from Faless/js/4.x_is_web 2022-08-29 13:00:32 +02:00
Fabio Alessandrelli
d20b32186f [Web] Rename JavaScript platform to Web.
Also rename export name from "HTML5" to "Web".
2022-08-29 11:52:00 +02:00
Rémi Verschelde
fd6453c45e Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED"
This reverts commit 4b817a565c.

Fixes #64988.
Fixes #64997.

This caused several regressions (#64988, #64997,
https://github.com/godotengine/godot/issues/64997#issuecomment-1229970605)
which point at a flaw in the current logic:

- `Control::NOTIFICATION_ENTER_TREE` triggers a *deferred* notification with
  `NOTIFCATION_THEME_CHANGED` as introduced in #62845.
- Some classes use their `THEME_CHANGED` to cache theme items in
  member variables (e.g. `style_normal`, etc.), and use those member
  variables in `ENTER_TREE`, `READY`, `DRAW`, etc. Since the `THEME_CHANGE`
  notification is now deferred, they end up accessing invalid state and this
  can lead to not applying theme properly (e.g. for EditorHelp) or crashing
  (e.g. for EditorLog or CodeEdit).

So we need to go back to the drawing board and see if `THEME_CHANGED` can be
called earlier so that the previous logic still works?

Or can we refactor all engine code to make sure that:
- `ENTER_TREE` and similar do not depend on theme properties cached in member
  variables.
- Or `THEME_CHANGE` does trigger a general UI update to make sure that any
  bad theme handling in `ENTER_TREE` and co. gets fixed when `THEME_CHANGE`
  does arrive for the first time. But that means having a temporary invalid
  (and possibly still crashing) state, and doing some computations twice
  which might be heavy (e.g. `EditorHelp::_update_doc()`).
2022-08-29 11:11:29 +02:00
Rémi Verschelde
1782557339
Merge pull request #64386 from timothyqiu/anim-disable
Fix crash when loading Animation Library after reloading a scene
2022-08-29 07:50:00 +02:00
Yuri Rubinsky
cb62d31938
Merge pull request #64981 from Chaosus/vs_fix 2022-08-28 22:37:54 +03:00
Rémi Verschelde
f7f8af232c
Merge pull request #64885 from Mickeon/rename-tooltip-hint
Rename `hint_tooltip` to `tooltip_text` & setter getter
2022-08-28 17:43:01 +02:00
Yuri Rubinsky
5ccc6e2ec8 Fix category of new added visual shader functions 2022-08-28 12:40:54 +03:00
Yuri Rubinsky
1f9b992d85
Merge pull request #64248 from paddy-exe/built-in-shader-functions 2022-08-28 09:04:52 +03:00
Patrick Exner
55bbcc54e7 Implement custom non-trivial shader functions 2022-08-27 22:59:12 +02:00
Rémi Verschelde
d3db8bbebd
Merge pull request #62846 from AaronRecord/remove_redundant_theme_updates_in_enter_tree
Remove `NOTIFICATION_ENTER_TREE` when paired with `NOTIFICATION_THEME_CHANGED`
2022-08-27 21:56:14 +02:00
Aaron Record
4b817a565c Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED 2022-08-27 11:52:29 -06:00
Rémi Verschelde
f9998455ce
Merge pull request #63249 from V-Sekai/animation_tree_editor_read_only
Add read-only mode to AnimationTreeEditor plugins
2022-08-27 08:14:30 +02:00
Josh Jones
3dd59013f4 Added node for Navigation links 2022-08-26 22:05:15 -07:00
Micky
ef5b9a06a9 Rename hint_tooltip to tooltip_text & setget
`hint_tooltip` -> `tooltip_text`
`set_tooltip` -> `set_tooltip_text`
`_get_tooltip` -> `get_tooltip_text`

Updates documentation, too.
2022-08-27 01:35:01 +02:00
Rémi Verschelde
f9f2446972
Merge pull request #64367 from Mickeon/rename-var-to-str
Rename `str2var` to `str_to_var` and similar
2022-08-26 23:04:06 +02:00
Yuri Sizov
6320a0fc18 Add ThemeDB, expose previously static Theme methods 2022-08-26 19:23:05 +03:00
Micky
59e11934d8 Rename str2var to str_to_var and similar
Affects the Math class, a good chunk of the audio code, and a lot of other miscellaneous classes, too.

- `var2str` -> `var_to_str`
- `str2var` -> `str_to_var`
- `bytes2var` -> `bytes_to_var`
- `bytes2var_with_objects` -> `bytes_to_var_with_objects`
- `var2bytes` -> `var_to_bytes`
- `var2bytes_with_objects` -> `var_to_bytes_with_objects`
- `linear2db` -> `linear_to_db`
- `db2linear` -> `db_to_linear`
- `deg2rad` -> `deg_to_rad`
- `rad2deg` -> `rad_to_deg`

- `dict2inst` -> `dict_to_inst`
- `inst2dict` -> `inst_to_dict`
2022-08-26 14:58:22 +02:00
fabriceci
f8cc88fab3 Restore RigidBody2/3D, SoftBody names in physics 2022-08-26 12:26:25 +02:00
Rémi Verschelde
dadebb95aa
Merge pull request #64601 from MinusKube/alternative-tile-popup-bug
Fix alternative tile popup menu not being openable
2022-08-26 10:35:43 +02:00
Rémi Verschelde
d93d646723
Merge pull request #64570 from KoBeWi/node🧳ing
Unify node casing adjustment
2022-08-26 09:49:58 +02:00
Rémi Verschelde
cd661d400e
Merge pull request #64566 from Mickeon/rename-particle-material
Rename ParticlesMaterial to ParticleProcessMaterial
2022-08-26 07:48:23 +02:00
kobewi
d764278f37 Add drag and drop support to shader list 2022-08-26 03:19:01 +02:00
Micky
723bf85145 Rename ParticlesMaterial to ParticleProcessMaterial
Also affects their file names, related classes and documentation.
2022-08-26 02:53:08 +02:00
Rémi Verschelde
51fcc2927b
Merge pull request #64597 from MinusKube/tileset-disappear-bug 2022-08-25 22:58:34 +02:00
SaracenOne
75f1357ced Add read-only mode to AnimationTreeEditor plugins 2022-08-25 16:29:36 +01:00
MinusKube
2abccb018e Fix alternative tile popup menu not being openable 2022-08-25 16:20:56 +02:00
MinusKube
d71b02cd19 Fix tileset image and background sometimes disappearing 2022-08-25 16:18:39 +02:00
Yuri Rubinsky
d4a10e7e04 Allow using integer varyings with flat interpolation modifier 2022-08-25 13:21:02 +03:00
Rémi Verschelde
b1f392c25e Remove VisualScript module for 4.0
As announced in https://godotengine.org/article/godot-4-will-discontinue-visual-scripting,
Godot maintainers have agreed to discontinue the current implementation of
our VisualScript language.

The way it had been designed was not user-friendly enough and we did not
succeed in improving its usability to actually make it a good low-code
solution for users who need one.

So we prefer to remove it for Godot 4.0 and leave the door open for new,
innovative ideas around visual scripting, to be developed as plugins or
extensions now that Godot provides sufficient functionality for this
(notably via GDExtension and the godot-cpp C++ bindings).

The current module has been moved to a dedicated repository (with full Git
history extracted with `git filter-branch`):

https://github.com/godotengine/godot-visual-script

It can still be compiled as a C++ module (for now, but will likely require
work to be kept in sync with the engine repository), but our hope is that
contributors will port it to GDExtension (which is quite compatibile with
the existing C++ module code when using the godot-cpp C++ bindings).
2022-08-24 12:08:17 +02:00
Rémi Verschelde
7055200bb0
Merge pull request #64730 from AlexHCC/fix-ruler-drawing-order
Fix ruler lines rendering on top of text
2022-08-24 08:53:16 +02:00
Rémi Verschelde
b556d8c9a0
Merge pull request #64370 from Mickeon/rename-marker-node
Rename Position* nodes to Marker*
2022-08-24 08:52:13 +02:00
Rémi Verschelde
91e5f48ea7
Merge pull request #64009 from KoBeWi/arrayy_lmao
Replace Array return types with TypedArray (part 2)
2022-08-24 08:18:56 +02:00
kobewi
1abdffe7a0 Replace Array return types with TypedArray 2 2022-08-23 23:21:32 +02:00
AlexHCC
db227f85e8 Fix ruler lines rendering on top of text 2022-08-24 00:00:56 +03:00
Rémi Verschelde
fc0b6abe52
Merge pull request #64617 from Mickeon/editor-restore-mesh-drop 2022-08-23 20:49:30 +02:00
Micky
8bb305356e Rename Position* nodes to Marker*
- Position2D -> Marker2D
- Position3D -> Marker3D

Also changes their respective file names.
2022-08-23 19:49:50 +02:00
Rémi Verschelde
5c5bc21195
Merge pull request #63854 from TokageItLab/auto-bone-mapping 2022-08-23 18:16:15 +02:00
Yuri Sizov
fe0c216bc7
Merge pull request #64587 from Calinou/editor-environment-defaults-decrease-shadow-max-distance
Decrease editor shadow maximum distance to match DirectionalLight3D default
2022-08-23 15:36:35 +03:00
Yuri Sizov
249517f132
Merge pull request #61493 from Calinou/editor-align-transform-rotate-decal
Rotate Decal nodes when using Align Transform/Rotation With View
2022-08-23 15:34:04 +03:00
Silc Renew
c7e4eeb8a4 Add simple auto mapping to BoneMapper
Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
2022-08-23 16:43:33 +09:00
kobewi
8be27dc59e Replace Array return types with TypedArray 2022-08-22 22:42:36 +02:00
kobewi
ece3df3938 Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
Rémi Verschelde
af76fb4567
Merge pull request #63486 from TokageItLab/init-poses 2022-08-22 17:32:02 +02:00
Micky
6aa4c9c77a Restore ability to drag 'n' drop Mesh to Viewport 2022-08-20 16:39:44 +02:00
Yuri Sizov
7895a66cf2
Merge pull request #64334 from YuriSizov/core-bind-property-revert-methods
Make `property_*_revert` methods multilevel and expose them for scripting
2022-08-19 20:41:41 +03:00
Max Hilbrunner
420a8c888e
Merge pull request #63950 from bruvzg/menu_bar3
Implement MenuBar control to wrap Popup menus or native menu, use native menu for editor.
2022-08-19 01:24:24 +02:00
Yuri Sizov
480586899a
Merge pull request #63358 from YuriSizov/control-simplify-enhance-toolbar
Improve editor toolbar for `Control` nodes
2022-08-19 00:46:46 +03:00
Hugo Locurcio
693b933b7f
Decrease editor shadow maximum distance to match DirectionalLight3D default
This improves shadow texel density, leading to improved visual quality
(and higher performance in large scenes, as fewer objects will be
included in the shadow map).
2022-08-18 21:58:55 +02:00
bruvzg
8c56a7416b
Implement MenuBar control to wrap PopupMenus or native menu, use native menu for editor. 2022-08-18 22:25:44 +03:00