This allows not accounting for certain visible meshes during baking
(such as foliage and thin fixtures).
This also adds a clarification about transparent materials always
being excluded in the OccluderInstance3D documentation.
This is important to quickly determine if a texture is using
unexpectedly high amounts of memory, or to troubleshoot
why mipmap sampling modes have no effect on it.
- Improve readability by increasing outline size and reducing
font size to match the rest of the editor UI.
For this to work safely (user not call queue_free or something in the expression), a const call mode was added to Object and Variant (and optionally Script).
This mode ensures only const functions can be called, making it safe to use from the editor.
Co-Authored-By: reduz <reduzio@gmail.com>
This PR implements:
* A new hint: PROPERTY_HINT_NODE_TYPE for variant type OBJECT, which can take specific node types as hint string.
* The editor will show it as a node path, but will set it as a pointer to a node from the current scene if you select a path.
* When scene is saved, the node path is saved, then restored as a pointer.
NOTE: This is a proof of concept and this approach will most likely not work. The reason if that, if the node referenced is deleted, then when trying to edit this the node will become invalid.
Potential workarounds: Since this uses the Variant API, it should obtain the pointer from the Variant object ID. Yet, this would either only really work in GDScript or it would need to be implemented with workarounds in every language.
Alternative ways to make this work: Nodes could export an additional property with a node path (like for which_node, it could be which_node_path).
Another alternative: Path editing could happen as a hidden metadata (ignoring the pointer).
Redo edited subresource (and resource) saving in a much more simplified way.
I think this should work (unless I am missing something) and be faster than what is there.
It should also supersede #55885.
I am not 100% entirely convinced that this approach works, but I think it should so please test.
This makes sure that:
1.) The title is always up-to-date with project settings
2.) The title always reflects the changes made in the editor by showing or hiding the '(*)'