godot/core
reduz b7c41f9ba1 Add ability to export Node pointers as NodePaths
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).
2022-06-25 15:50:15 +02:00
..
config Merge pull request #62122 from reduz/implement-movie-writer 2022-06-21 14:24:14 +02:00
crypto Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
debugger Add a new HashSet template 2022-05-20 22:40:38 +02:00
error Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
extension GDExtension: print error messages for different error paths during loading 2022-06-19 10:14:41 +02:00
input Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
io Add support for saving WebP images 2022-06-21 08:27:51 -05:00
math Add surface indices to TriangleMesh 2022-06-22 21:48:23 +02:00
multiplayer Clean up Hash Functions 2022-06-20 12:54:19 +02:00
object Add ability to export Node pointers as NodePaths 2022-06-25 15:50:15 +02:00
os Merge pull request #62122 from reduz/implement-movie-writer 2022-06-21 14:24:14 +02:00
string Fix parameter name for String.left and String.right 2022-06-12 16:34:44 +08:00
templates Clean up Hash Functions 2022-06-20 12:54:19 +02:00
variant Clean up Hash Functions 2022-06-20 12:54:19 +02:00
core_bind.cpp Remove userdata from Thread.start() 2022-06-23 12:50:28 +02:00
core_bind.h Remove userdata from Thread.start() 2022-06-23 12:50:28 +02:00
core_builders.py Use maximum zlib compression when generating editor translation headers 2021-10-29 19:07:48 +02:00
core_constants.cpp Add ability to export Node pointers as NodePaths 2022-06-25 15:50:15 +02:00
core_constants.h Make enum/constant binds 64-bit. 2022-06-17 16:36:26 +03:00
core_string_names.cpp Cleanup metadata usage 2022-05-06 00:27:10 +02:00
core_string_names.h Cleanup metadata usage 2022-05-06 00:27:10 +02:00
doc_data.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
doc_data.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
register_core_types.cpp Implement missing Node & Resource placeholders 2022-05-03 17:08:09 +02:00
register_core_types.h Fix extension registration order. 2022-02-20 10:58:46 -03:00
SCsub Core: Move generated VERSION_HASH to a .cpp file 2022-02-09 09:20:17 +01:00
typedefs.h Change some math macros to constexpr 2022-03-09 16:24:32 +01:00
version.h Core: Move generated VERSION_HASH to a .cpp file 2022-02-09 09:20:17 +01:00