diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-10-10 13:51:14 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-10-10 13:51:14 +0200 |
commit | 16a3c32da9cd62ca96e29c4bfd54beda8fd84d78 (patch) | |
tree | d09eb33117e8970593bbaf3f00c5d33487d849d5 /binding_generator.py | |
parent | f69f1bb58f84f3ee63b867a039da2bf475750489 (diff) | |
parent | d17b256fdd407742bb30a595f7bbb1ea0a19ccb9 (diff) | |
download | redot-cpp-16a3c32da9cd62ca96e29c4bfd54beda8fd84d78.tar.gz |
Merge pull request #879 from touilleMan/fix-variant-type-in-extension-api-dump
Fix Variant types displayed as `Nil` in extension_api.json
Diffstat (limited to 'binding_generator.py')
-rw-r--r-- | binding_generator.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/binding_generator.py b/binding_generator.py index f87eacd..0bf46ea 100644 --- a/binding_generator.py +++ b/binding_generator.py @@ -280,10 +280,7 @@ def generate_builtin_bindings(api, output_dir, build_config): if "operators" in builtin_api: for operator in builtin_api["operators"]: if "right_type" in operator: - # FIXME Temporary workaround for incorrect JSON - if operator["right_type"] == "Nil": - used_classes.add("Variant") - elif is_included(operator["right_type"], class_name): + if is_included(operator["right_type"], class_name): used_classes.add(operator["right_type"]) for type_name in fully_used_classes: @@ -728,8 +725,12 @@ def generate_builtin_class_source(builtin_api, size, used_classes, fully_used_cl if "operators" in builtin_api: for operator in builtin_api["operators"]: if "right_type" in operator: + if operator["right_type"] == "Variant": + right_type_variant_type = "GDNATIVE_VARIANT_TYPE_NIL" + else: + right_type_variant_type = f"GDNATIVE_VARIANT_TYPE_{camel_to_snake(operator['right_type']).upper()}" result.append( - f'\t_method_bindings.operator_{get_operator_id_name(operator["name"])}_{operator["right_type"]} = internal::gdn_interface->variant_get_ptr_operator_evaluator(GDNATIVE_VARIANT_OP_{get_operator_id_name(operator["name"]).upper()}, {enum_type_name}, GDNATIVE_VARIANT_TYPE_{camel_to_snake(operator["right_type"]).upper()});' + f'\t_method_bindings.operator_{get_operator_id_name(operator["name"])}_{operator["right_type"]} = internal::gdn_interface->variant_get_ptr_operator_evaluator(GDNATIVE_VARIANT_OP_{get_operator_id_name(operator["name"]).upper()}, {enum_type_name}, {right_type_variant_type});' ) else: result.append( |