diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2020-01-10 13:32:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-10 13:32:24 +0100 |
commit | f8da87c763e8097ddb4184f4213325c3e532b0fe (patch) | |
tree | 564c1479113a6f8344160cb2cd3f35d3febefc37 | |
parent | abefd42e846a04d2256da9d27b6d5757d431cec0 (diff) | |
parent | 677e72d2f67ca13deb796d323367eb6c5a893721 (diff) |
Merge pull request #34986 from toasteater/feature/is-instance-id-valid
Expose instance_from_id to GDNative
-rw-r--r-- | modules/gdnative/gdnative/gdnative.cpp | 4 | ||||
-rw-r--r-- | modules/gdnative/gdnative_api.json | 7 | ||||
-rw-r--r-- | modules/gdnative/include/gdnative/gdnative.h | 3 |
3 files changed, 14 insertions, 0 deletions
diff --git a/modules/gdnative/gdnative/gdnative.cpp b/modules/gdnative/gdnative/gdnative.cpp index 6ef1f2f4b9..06334556d9 100644 --- a/modules/gdnative/gdnative/gdnative.cpp +++ b/modules/gdnative/gdnative/gdnative.cpp @@ -170,6 +170,10 @@ bool GDAPI godot_is_instance_valid(const godot_object *p_object) { return ObjectDB::instance_validate((Object *)p_object); } +godot_object GDAPI *godot_instance_from_id(godot_int p_instance_id) { + return (godot_object *)ObjectDB::get_instance((ObjectID)p_instance_id); +} + void *godot_get_class_tag(const godot_string_name *p_class) { StringName class_name = *(StringName *)p_class; ClassDB::ClassInfo *class_info = ClassDB::classes.getptr(class_name); diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json index 7e2ca49f8d..8ccb8d2286 100644 --- a/modules/gdnative/gdnative_api.json +++ b/modules/gdnative/gdnative_api.json @@ -155,6 +155,13 @@ ["const godot_object *", "p_object"], ["void *", "p_class_tag"] ] + }, + { + "name": "godot_instance_from_id", + "return_type": "godot_object *", + "arguments": [ + ["godot_int", "p_instance_id"] + ] } ] }, diff --git a/modules/gdnative/include/gdnative/gdnative.h b/modules/gdnative/include/gdnative/gdnative.h index 2fe59b8a73..e19a2ec149 100644 --- a/modules/gdnative/include/gdnative/gdnative.h +++ b/modules/gdnative/include/gdnative/gdnative.h @@ -290,6 +290,9 @@ bool GDAPI godot_is_instance_valid(const godot_object *p_object); void GDAPI *godot_get_class_tag(const godot_string_name *p_class); godot_object GDAPI *godot_object_cast_to(const godot_object *p_object, void *p_class_tag); +// equivalent of GDScript's instance_from_id +godot_object GDAPI *godot_instance_from_id(godot_int p_instance_id); + #ifdef __cplusplus } #endif |