@@ -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,11 @@ 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 (f"\t inline static ::godot::internal::EngineClassRegistration<{ class_name } { snake_class_name .lower ()}  )
1436+  result .append ("}" );
1437+  result .append ("" );
1438+ 
14401439 if  class_name  ==  "EditorPlugin" :
14411440 result .append ("class EditorPlugins {" )
14421441 result .append ("private:" )
@@ -1685,38 +1684,6 @@ def generate_engine_class_source(class_api, used_classes, fully_used_classes, us
16851684 return  "\n " .join (result )
16861685
16871686
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 }  )
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- 
17201687def  generate_global_constants (api , output_dir ):
17211688 include_gen_folder  =  Path (output_dir ) /  "include"  /  "godot_cpp"  /  "classes" 
17221689 source_gen_folder  =  Path (output_dir ) /  "src"  /  "classes" 
0 commit comments