From cf45f3ab4bc7062702e3d94baf4e681861ab3e42 Mon Sep 17 00:00:00 2001 From: Karroffel Date: Mon, 10 Apr 2017 19:56:12 +0200 Subject: [PATCH] [GDNative] function to get class constructor --- modules/gdnative/godot.cpp | 7 +++++++ modules/gdnative/godot.h | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/modules/gdnative/godot.cpp b/modules/gdnative/godot.cpp index 5ad716d0cd5..7477a28db64 100644 --- a/modules/gdnative/godot.cpp +++ b/modules/gdnative/godot.cpp @@ -182,6 +182,13 @@ void GDAPI *godot_native_get_userdata(godot_object *p_instance) { return NULL; } +godot_class_constructor GDAPI godot_get_class_constructor(const char *p_classname) { + ClassDB::ClassInfo *class_info = ClassDB::classes.getptr(StringName(p_classname)); + if (class_info) + return (godot_class_constructor)class_info->creation_func; + return NULL; +} + godot_dictionary GDAPI godot_get_global_constants() { godot_dictionary constants; godot_dictionary_new(&constants); diff --git a/modules/gdnative/godot.h b/modules/gdnative/godot.h index 45ac64feee5..bba0a3f98d5 100644 --- a/modules/gdnative/godot.h +++ b/modules/gdnative/godot.h @@ -376,6 +376,10 @@ void GDAPI godot_script_register_signal(const char *p_name, const godot_signal * void GDAPI *godot_native_get_userdata(godot_object *p_instance); +typedef godot_object *(*godot_class_constructor)(); + +godot_class_constructor GDAPI godot_get_class_constructor(const char *p_classname); + godot_dictionary GDAPI godot_get_global_constants(); ////// System Functions