@@ -131,8 +131,6 @@ def get_file_list(api_filepath, output_dir, headers=False, sources=False):
131131 if sources :
132132 utility_functions_source_path = source_gen_folder / "variant" / "utility_functions.cpp"
133133 files .append (str (utility_functions_source_path .as_posix ()))
134- register_engine_classes_source_path = source_gen_folder / "register_engine_classes.cpp"
135- files .append (str (register_engine_classes_source_path .as_posix ()))
136134
137135 return files
138136
@@ -1207,10 +1205,6 @@ def generate_engine_classes_bindings(api, output_dir, use_template_get_node):
12071205 generate_engine_class_source (class_api , used_classes , fully_used_classes , use_template_get_node )
12081206 )
12091207
1210- register_engine_classes_filename = Path (output_dir ) / "src" / "register_engine_classes.cpp"
1211- with register_engine_classes_filename .open ("w+" , encoding = "utf-8" ) as source_file :
1212- source_file .write (generate_register_engine_classes_source (api ))
1213-
12141208 for native_struct in api ["native_structures" ]:
12151209 struct_name = native_struct ["name" ]
12161210 snake_struct_name = camel_to_snake (struct_name )
@@ -1437,6 +1431,13 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us
14371431 result .append ("};" )
14381432 result .append ("" )
14391433
1434+ result .append ("namespace {" )
1435+ result .append (
1436+ f"\t inline static ::godot::internal::EngineClassRegistration<{ class_name } > _gde_{ snake_class_name .lower ()} _registration_helper;"
1437+ )
1438+ result .append ("}" )
1439+ result .append ("" )
1440+
14401441 if class_name == "EditorPlugin" :
14411442 result .append ("class EditorPlugins {" )
14421443 result .append ("private:" )
@@ -1685,38 +1686,6 @@ def generate_engine_class_source(class_api, used_classes, fully_used_classes, us
16851686 return "\n " .join (result )
16861687
16871688
1688- def generate_register_engine_classes_source (api ):
1689- includes = []
1690- registrations = []
1691-
1692- for class_api in api ["classes" ]:
1693- if class_api ["name" ] == "ClassDB" :
1694- continue
1695-
1696- class_name = class_api ["name" ]
1697- snake_class_name = camel_to_snake (class_name )
1698-
1699- includes .append (f"#include <godot_cpp/classes/{ snake_class_name } .hpp>" )
1700- registrations .append (f"\t ClassDB::register_engine_class<{ class_name } >();" )
1701-
1702- result = []
1703- add_header (f"register_engine_classes.cpp" , result )
1704-
1705- result .append ("#include <godot_cpp/godot.hpp>" )
1706- result .append ("" )
1707- result = result + includes
1708- result .append ("" )
1709- result .append ("namespace godot {" )
1710- result .append ("" )
1711- result .append ("void GDExtensionBinding::register_engine_classes() {" )
1712- result = result + registrations
1713- result .append ("}" )
1714- result .append ("" )
1715- result .append ("} // namespace godot " )
1716-
1717- return "\n " .join (result )
1718-
1719-
17201689def generate_global_constants (api , output_dir ):
17211690 include_gen_folder = Path (output_dir ) / "include" / "godot_cpp" / "classes"
17221691 source_gen_folder = Path (output_dir ) / "src" / "classes"
0 commit comments