Răsfoiți Sursa

[GDNative] function to get class constructor

Karroffel 8 ani în urmă
părinte
comite
cf45f3ab4b
2 a modificat fișierele cu 11 adăugiri și 0 ștergeri
  1. 7 0
      modules/gdnative/godot.cpp
  2. 4 0
      modules/gdnative/godot.h

+ 7 - 0
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);

+ 4 - 0
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