Skip to content

Commit 3fdf37e

Browse files
author
Vano
committed
editor plugin macro
1 parent 62b21ed commit 3fdf37e

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

cppscript.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ def GlobRecursive(path, pattern, **kwargs):
7070
'GBIND_METHODS_APPEND',
7171
'GBIND_METHODS_PREPEND',
7272
'GRESOURCE_LOADER',
73-
'GRESOURCE_SAVER'
73+
'GRESOURCE_SAVER',
74+
'GEDITOR_PLUGIN'
7475
] + INIT_LEVELS
7576

7677
ALL_KEYWORDS = KEYWORDS + TARGETLESS_KEYWORDS
@@ -525,6 +526,11 @@ def process_macros(item, macros, properties, is_ignored=False):
525526
case 'GRESOURCE_SAVER':
526527
class_defs['is_resource_saver'] = True
527528

529+
case 'GEDITOR_PLUGIN':
530+
class_defs['init_level'] = 'EDITOR'
531+
class_defs['is_editor_plugin'] = True
532+
533+
528534

529535
return not is_ignored
530536

@@ -734,13 +740,17 @@ def make_register_str_pair(class_name_full, content):
734740
loaders_savers.append(f'extern Ref<{class_name_full}> {variable_name};')
735741
register_str += f'\t{variable_name}.instantiate();\n\tResourceLoader::get_singleton()->add_resource_format_loader({variable_name});\n'
736742
unregister_str += f'\tResourceLoader::get_singleton()->remove_resource_format_loader({variable_name});\n\t{variable_name}.unref();\n'
743+
737744
elif 'is_resource_saver' in content:
738745
variable_name = f'{content["class_name"]}_saver'
739746

740747
loaders_savers.append(f'extern Ref<{class_name_full}> {variable_name};\n')
741748
register_str += f'\t{variable_name}.instantiate();\n\tResourceSaver::get_singleton()->add_resource_format_saver({variable_name});\n'
742749
unregister_str += f'\tResourceSaver::get_singleton()->remove_resource_format_saver({variable_name});\n\t{variable_name}.unref();\n'
743750

751+
elif 'is_editor_plugin' in content:
752+
register_str += f'\tEditorPlugins::add_by_type<{class_name_full}>();\n'
753+
744754
return register_str, unregister_str
745755

746756
for file, filecontent in defs_all['files'].items():
@@ -768,7 +778,7 @@ def make_register_str_pair(class_name_full, content):
768778
if loaders_savers != []:
769779
scripts_header += '#include <godot_cpp/classes/resource_loader.hpp>\n'
770780
scripts_header += '#include <godot_cpp/classes/resource_saver.hpp>\n'
771-
781+
772782
classes_register_str = ''
773783
if classes_register_levels['CORE'] != []:
774784
minimal_register_level = 'MODULE_INITIALIZATION_LEVEL_CORE'

src/cppscript_defs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,6 @@ void function(decltype(property) value) { \
4949
#define GBIND_METHODS_PREPEND(...)
5050
#define GRESOURCE_LOADER(...)
5151
#define GRESOURCE_SAVER(...)
52+
#define GEDITOR_PLUGIN(...)
5253

5354
#endif // CPPSCRIPT_HEADER

0 commit comments

Comments
 (0)