diff options
Diffstat (limited to 'binding_generator.py')
-rw-r--r-- | binding_generator.py | 64 |
1 files changed, 1 insertions, 63 deletions
diff --git a/binding_generator.py b/binding_generator.py index d3e4cef..eb201ff 100644 --- a/binding_generator.py +++ b/binding_generator.py @@ -131,8 +131,6 @@ def get_file_list(api_filepath, output_dir, headers=False, sources=False): if sources: utility_functions_source_path = source_gen_folder / "variant" / "utility_functions.cpp" files.append(str(utility_functions_source_path.as_posix())) - register_engine_classes_source_path = source_gen_folder / "register_engine_classes.cpp" - files.append(str(register_engine_classes_source_path.as_posix())) return files @@ -1210,10 +1208,6 @@ def generate_engine_classes_bindings(api, output_dir, use_template_get_node): generate_engine_class_source(class_api, used_classes, fully_used_classes, use_template_get_node) ) - register_engine_classes_filename = Path(output_dir) / "src" / "register_engine_classes.cpp" - with register_engine_classes_filename.open("w+", encoding="utf-8") as source_file: - source_file.write(generate_register_engine_classes_source(api)) - for native_struct in api["native_structures"]: struct_name = native_struct["name"] snake_struct_name = camel_to_snake(struct_name) @@ -1288,7 +1282,7 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us result.append(f"#include <godot_cpp/{get_include_path(included)}>") if class_name == "EditorPlugin": - result.append("#include <godot_cpp/templates/vector.hpp>") + result.append("#include <godot_cpp/classes/editor_plugin_registration.hpp>") if len(fully_used_classes) > 0: result.append("") @@ -1440,30 +1434,6 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us result.append("};") result.append("") - if class_name == "EditorPlugin": - result.append("class EditorPlugins {") - result.append("private:") - result.append("\tstatic Vector<StringName> plugin_classes;") - result.append("") - result.append("public:") - result.append("\tstatic void add_plugin_class(const StringName &p_class_name);") - result.append("\tstatic void remove_plugin_class(const StringName &p_class_name);") - result.append("\tstatic void deinitialize(GDExtensionInitializationLevel p_level);") - result.append("") - - result.append("\ttemplate <class T>") - result.append("\tstatic void add_by_type() {") - result.append("\t\tadd_plugin_class(T::get_class_static());") - result.append("\t}") - - result.append("\ttemplate <class T>") - result.append("\tstatic void remove_by_type() {") - result.append("\t\tremove_plugin_class(T::get_class_static());") - result.append("\t}") - - result.append("};") - result.append("") - result.append("} // namespace godot") result.append("") @@ -1688,38 +1658,6 @@ def generate_engine_class_source(class_api, used_classes, fully_used_classes, us return "\n".join(result) -def generate_register_engine_classes_source(api): - includes = [] - registrations = [] - - for class_api in api["classes"]: - if class_api["name"] == "ClassDB": - continue - - class_name = class_api["name"] - snake_class_name = camel_to_snake(class_name) - - includes.append(f"#include <godot_cpp/classes/{snake_class_name}.hpp>") - registrations.append(f"\tClassDB::register_engine_class<{class_name}>();") - - result = [] - add_header(f"register_engine_classes.cpp", result) - - result.append("#include <godot_cpp/godot.hpp>") - result.append("") - result = result + includes - result.append("") - result.append("namespace godot {") - result.append("") - result.append("void GDExtensionBinding::register_engine_classes() {") - result = result + registrations - result.append("}") - result.append("") - result.append("} // namespace godot ") - - return "\n".join(result) - - def generate_global_constants(api, output_dir): include_gen_folder = Path(output_dir) / "include" / "godot_cpp" / "classes" source_gen_folder = Path(output_dir) / "src" / "classes" |