Commit graph

36833 commits

Author SHA1 Message Date
reduz
32b43cfeb3 Implement Resource UIDs
* Most resource types now have unique identifiers.
* Applies to text, binary and imported resources.
* File formats reference both by text and UID (when available). UID always has priority.
* Resource UIDs are 64 bits for better compatibility with the engine.
* Can be represented and used textually, example `uuid://dapwmgsmnl28u`.
* A special binary cache file is used and exported, containing the mappings.

Example of how it looks:

```GDScript
[gd_scene load_steps=2 format=3 uid="uid://dw86wq31afig2"]

[ext_resource type="PackedScene" uid="uid://bt36ojelx8q6c" path="res://subscene.scn" id="1_t56hs"]
```

GDScript, shaders and other special resource files can't currently provide UIDs, but this should be doable with special keywords on the files.
This will be reserved for future PRs.
2021-07-24 09:16:52 -03:00
Rémi Verschelde
9ac27b58c5
Merge pull request #50795 from Calinou/editor-profiler-display-time-add-tooltips
Add a tooltip for Inclusive and Self in the editor profiler
2021-07-24 10:20:08 +02:00
Andrea Catania
21a13649be
Fix Static & Rigid body generation on mesh import.
The function `_gen_shape_list` is using the resource `Res<Mesh>`, but during the import phase the resource used is instead `Ref<EditorSceneImporterMesh>`.

Note: the `Ref<EditorSceneImporterMesh>` is an intermediate resource, that will be used to create a `Res<Mesh>` at the end of the import process. `Ref<EditorSceneImporterMesh>` and `Ref<Mesh>` are not inheriting each other, so the internal cast done by `Ref<>` during the assignment, is always null:

```c++
Ref<EditorSceneImporterMesh> import_mesh(/* Assume it's initialized */);
CRASH_NOW(import_mesh.is_null());

Ref<Mesh> mesh = import_mesh;
CRASH_NOW(mesh.is_null()); // <--- Here we have a crash, since it's impossible perform the above cast, and the `mesh` is always null.
```

Here the full list of call to `_gen_shape_list`, where we can notice that a `Ref<EditorSceneImporterMesh>` is passed:
- https://github.com/AndreaCatania/godot/blob/master/editor/import/resource_importer_scene.cpp#L428
- https://github.com/AndreaCatania/godot/blob/master/editor/import/resource_importer_scene.cpp#L454-L458
- https://github.com/AndreaCatania/godot/blob/master/editor/import/resource_importer_scene.cpp#L512-L516

As you can notice, we always pass the following mesh: `Ref<EditorSceneImporterMesh> mesh = mi->get_mesh();`.

We already have the function `_pre_gen_shape_list` that executes the exact same job but using the correct type; Since there is no further usage of the function `_gen_shape_list` in the code base, I think it's just some leftover code, so I removed it entirely to use the proper function.
2021-07-24 08:39:18 +02:00
Hugo Locurcio
e837e04ef8
Add a tooltip for Inclusive and Self in the editor profiler
This also changes the display mode tooltips to reflect the fact that
times are now displayed in milliseconds instead of seconds.
2021-07-24 06:24:24 +02:00
Aaron Franke
4e6efd1b07
Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
foxydevloper
6b90e2df6c Improve select tool's tooltip
- Makes tips clearer and more consistent.
- Removes outdated "shift+v" that doesn't work
- Adds Ctrl+RMB for adding nodes at position
- Removes tip for non-existent Alt+Drag in 3D select tool
2021-07-23 17:30:45 -04:00
Aaron Franke
5f8275d9ac
Add a simple C# .editorconfig 2021-07-23 17:04:53 -04:00
Rémi Verschelde
b918c4c3ce
Merge pull request #50789 from aaronfranke/fix-input-action-raw-str
Fix Input get_action_raw_strength binding
2021-07-23 22:59:02 +02:00
Rémi Verschelde
57388809f7
Merge pull request #50780 from JFonS/fix_submenus
Fix Popup submenu in single-window mode
2021-07-23 22:15:23 +02:00
Rémi Verschelde
aa4babdc06
Merge pull request #50762 from TokageItLab/fix-node-selection-signal 2021-07-23 22:14:55 +02:00
Rémi Verschelde
4c3d5850de
Merge pull request #50748 from JFonS/gizmo_rework
Node3D gizmo improvements
2021-07-23 21:55:16 +02:00
Rémi Verschelde
28160e1a6f
Merge pull request #50779 from DavidCambre/Revert-unnecessary-changes
Revert unnecessary changes to VisualScriptEmitSignal
2021-07-23 21:53:21 +02:00
jfons
cfb555a081 Node3D gizmo improvements
* Clean-up of node_3d_editor_plugin.{h,cpp}: removed unused code, fixed some bugs.
* Moved node_3d_editor_gizmos.{h,cpp} to editor/plugins.
* Added support for multiple gizmos per node. This means custom gizmos will no longer override the built-in ones and that multiple gizmos can be used in more complex nodes.
* Added support for handle IDs. When adding handles to a gizmo, an ID can be specified for each one, making it easier to work with gizmos that have a variable number of handles.
* Added support for subgizmos, selectable elements that can be transformed without needing a node of their own. By overriding _subgizmo_intersect_frustum() and/or _subgizmo_intersect_ray() gizmos can define which subgizmos should be selected on a region or click selection. Subgizmo transformations are applied using get/set/commit virtual methods, similar to how handles work.
2021-07-23 21:01:10 +02:00
jfons
944b5ee639 Fix popup submenu in single-window mode
The internal processing code only works for OS windows, since it takes
the mouse position relative to the window and not the viewport. Now we
make sure it's not called in single-window mode.
2021-07-23 19:45:30 +02:00
David Cambré
74ca014364 Revert unnecessary changes to VisualScriptEmitSignal
Revert unnecessary changes to VisualScriptEmitSignal, commit 2032b56005b2f6add6b105a00f04c05f9b292eec
2021-07-23 19:34:27 +02:00
Rémi Verschelde
c25fa02c1c
Merge pull request #50765 from Calinou/resource-importer-expose-order-enum
Expose an ImportOrder enum in ResourceImporter
2021-07-23 19:32:44 +02:00
Rémi Verschelde
e0d48f87f9
Merge pull request #50782 from timothyqiu/undoredo-ref
Fix UndoRedo crash when clearing history
2021-07-23 19:27:51 +02:00
Rémi Verschelde
eefc67a810
Merge pull request #50747 from bruvzg/move_alert_to_os
Move `alert` function from `DisplayServer` to `OS`.
2021-07-23 19:27:31 +02:00
Rémi Verschelde
9b034c9304
Merge pull request #50776 from SirQuartz/patch-30 2021-07-23 19:23:30 +02:00
Rémi Verschelde
dab7a326e5
Merge pull request #43693 from KoBeWi/absolute_tooltips
Show tooltips even when paused or time_scale is 0
2021-07-23 19:22:42 +02:00
Haoyu Qiu
c3baf83e28 Fix UndoRedo crash when clearing history 2021-07-24 00:53:58 +08:00
Rémi Verschelde
d17201afc2
Merge pull request #50777 from KoBeWi/Schrödinger's-Label
Don't set metadata_label font if it doesn't exist
2021-07-23 18:19:43 +02:00
Nicholas Huelin
9a72b0d3d0 Fix doc typos
This pull request fixes an assortment of typos and improves conciseness in `Animation`, `Area2D`,  `Array`, `ArrayMesh`, `Control`, `Directory`, `EditorPlugin`, `Engine`, and `OS`.
2021-07-23 12:15:15 -04:00
kobewi
8793ec4564 Show tooltips even when paused or time_scale is 0 2021-07-23 17:49:30 +02:00
kobewi
2846dbf239 Don't set metadata_label font if it doesn't exist 2021-07-23 16:29:49 +02:00
Rémi Verschelde
8cddd3b2c0
Merge pull request #50768 from Calinou/editor-asset-library-urls-clarify
Clarify the purpose of the default asset library URLs in the editor
2021-07-23 15:40:01 +02:00
Rémi Verschelde
78dae32247
Merge pull request #50764 from AndreaCatania/AndreaCatania-patch-4
Fix GLTF crash when the material is not set.
2021-07-23 15:39:46 +02:00
Nick Huelin
580cb62986 Fix less relevant quick open scene results
This pull request improves the accuracy of the quick open scene results.
2021-07-23 09:10:42 -04:00
Rémi Verschelde
995093f59d
Merge pull request #37760 from KoBeWi/rect_edit_level_up
Allow for easier editing of rect CollisionShape2D
2021-07-23 14:38:04 +02:00
Hugo Locurcio
eac8ba6ce8
Clarify the purpose of the default asset library URLs in the editor
`localhost` was removed as it won't work out of the box. It can be added
by the user if they're working on the asset library itself.

This won't affect existing installations due to how the editor settings
are stored, but existing installations will keep working fine.
2021-07-23 13:02:04 +02:00
Hugo Locurcio
7f83977f37
Expose an ImportOrder enum in ResourceImporter
This avoids using magic numbers in code.
2021-07-23 12:12:25 +02:00
Andrea Catania
2cd347f4fa
Fix GLTF crash when the material is not set.
Sometimes there are meshes that doesn't have materials, so make sure to check this case before extracting the name.
2021-07-23 11:54:22 +02:00
Silc 'Tokage' Renew
b7bc609782 Remove extra signal firing in SELECT_MULTI mode 2021-07-23 17:53:16 +09:00
Silc 'Tokage' Renew
32640edac7 Revert "Fix duplicate selection in SceneTree"
This reverts commit 7d20d78847.

# Conflicts:
#	editor/scene_tree_editor.cpp
2021-07-23 17:34:21 +09:00
Aaron Franke
4147c67bb0
Fix Input get_action_raw_strength 2021-07-22 21:05:44 -04:00
Rémi Verschelde
515670351a
Merge pull request #50753 from Faless/obj/4.x_stringname_meta
Make Object "meta" functions take StringName.
2021-07-22 23:46:42 +02:00
Rémi Verschelde
90aab0402b
Merge pull request #50746 from LightningAA/fix-texture-preview-crash-4.0
Fix `TexturePreview` crashing
2021-07-22 23:33:11 +02:00
Fabio Alessandrelli
1147fa5c19 Make Object "meta" functions take StringName.
The various get_meta, set_meta, has_meta, get_meta_list, remove_meta
functions now uses StringName, allowing further optimizations via the
SNAME macro when used from C++ (this PR does not change the various
usage though).
2021-07-22 22:52:30 +02:00
Lightning_A
8ad00087ce Fix TexturePreview crashing 2021-07-22 13:43:34 -06:00
bruvzg
618eb27e8b Move alert function from DisplayServer to OS. 2021-07-22 21:50:35 +03:00
Rémi Verschelde
c2c82de49d
Merge pull request #50676 from reduz/textual-resource-ids 2021-07-22 20:32:59 +02:00
Rémi Verschelde
e0a4fd112d
Merge pull request #50738 from SirQuartz/patch-29
Fix miscellaneous doc typos
2021-07-22 20:27:14 +02:00
Rémi Verschelde
aac70dd37c
Merge pull request #50619 from YeldhamDev/menubutton_switch_on_hover
Make `MenuButton`'s `switch_on_hover` work again
2021-07-22 20:12:43 +02:00
Nicholas Huelin
9787e631aa Fix miscellaneous doc typos and inconsistencies
This pull request fixes an assortment of typos, improves conciseness, and enhances clarity.
2021-07-22 14:01:39 -04:00
reduz
75755beeee
Implement textual ext/subresource IDs.
* Friendlier with version control.
* Generates pseudo unique IDs, to minimize conflicts when merging, but still
  user readable (so, not UUID).
* Eventually will also allow to have more precisely named sub-resources in
  imported files.
* This will allow better reloading on changes (including resources already
  loaded) as well as better keeping track of changes on the DCC.
* Keeps backward compatibility with the old formats.
* Binary and text format version incremented to mark breakage in forward
  compatibility.
2021-07-22 19:37:47 +02:00
Michael Alexsander
a690cd9251 Make MenuButton's switch_on_hover work again 2021-07-22 14:27:30 -03:00
Rémi Verschelde
5de991d57c
Merge pull request #50736 from JulienVanelian/msec-doc-typo-fix
Fix delay_msec documentation description typo
2021-07-22 17:15:09 +02:00
Distrikt64
44eb041d60 Fix msec documentation description typo 2021-07-22 16:38:19 +02:00
Rémi Verschelde
3b9b207cbe
Merge pull request #50733 from bruvzg/static_mvk
Fix MoltenVK static linking on macOS.
2021-07-22 16:14:20 +02:00
bruvzg
53f84e39fd Fix MoltenVK static linking on macOS (add missing include path, Vulkan SDK path option, use xcframework instead of static framework). 2021-07-22 16:29:24 +03:00