From f5b340ab69caa9de1c9c155b88a74e8d779a88d2 Mon Sep 17 00:00:00 2001 From: Thaddeus Crews Date: Mon, 3 Jul 2023 12:51:54 -0500 Subject: [PATCH] Implement typed dictionaries --- binding_generator.py | 72 ++ gdextension/gdextension_interface.h | 27 + include/godot_cpp/core/type_info.hpp | 721 +++++++++++ include/godot_cpp/godot.hpp | 1 + .../godot_cpp/variant/typed_dictionary.hpp | 1099 +++++++++++++++++ src/godot.cpp | 2 + src/variant/packed_arrays.cpp | 6 + test/project/main.gd | 7 +- test/src/example.cpp | 19 + test/src/example.h | 2 + 10 files changed, 1954 insertions(+), 2 deletions(-) create mode 100644 include/godot_cpp/variant/typed_dictionary.hpp diff --git a/binding_generator.py b/binding_generator.py index 9c3284df..530c698c 100644 --- a/binding_generator.py +++ b/binding_generator.py @@ -421,6 +421,8 @@ def generate_builtin_class_header(builtin_api, size, used_classes, fully_used_cl for include in fully_used_classes: if include == "TypedArray": result.append("#include ") + elif include == "TypedDictionary": + result.append("#include ") else: result.append(f"#include ") @@ -743,6 +745,9 @@ def generate_builtin_class_header(builtin_api, size, used_classes, fully_used_cl if class_name == "Dictionary": result.append("\tconst Variant &operator[](const Variant &p_key) const;") result.append("\tVariant &operator[](const Variant &p_key);") + result.append( + "\tvoid set_typed(uint32_t p_key_type, const StringName &p_key_class_name, const Variant &p_key_script, uint32_t p_value_type, const StringName &p_value_class_name, const Variant &p_value_script);" + ) result.append("};") @@ -1126,6 +1131,32 @@ def generate_engine_classes_bindings(api, output_dir, use_template_get_node): fully_used_classes.add(array_type_name) else: used_classes.add(array_type_name) + elif type_name.startswith("typeddictionary::"): + fully_used_classes.add("TypedDictionary") + dict_type_name = type_name.replace("typeddictionary::", "") + if dict_type_name.startswith("const "): + dict_type_name = dict_type_name[6:] + dict_type_names = dict_type_name.split(",") + dict_type_name = dict_type_names[0] + if dict_type_name.endswith("*"): + dict_type_name = dict_type_name[:-1] + if is_included(dict_type_name, class_name): + if is_enum(dict_type_name): + fully_used_classes.add(get_enum_class(dict_type_name)) + elif "default_value" in argument: + fully_used_classes.add(dict_type_name) + else: + used_classes.add(dict_type_name) + dict_type_name = dict_type_names[2] + if dict_type_name.endswith("*"): + dict_type_name = dict_type_name[:-1] + if is_included(dict_type_name, class_name): + if is_enum(dict_type_name): + fully_used_classes.add(get_enum_class(dict_type_name)) + elif "default_value" in argument: + fully_used_classes.add(dict_type_name) + else: + used_classes.add(dict_type_name) elif is_enum(type_name): fully_used_classes.add(get_enum_class(type_name)) elif "default_value" in argument: @@ -1155,6 +1186,32 @@ def generate_engine_classes_bindings(api, output_dir, use_template_get_node): fully_used_classes.add(array_type_name) else: used_classes.add(array_type_name) + elif type_name.startswith("typeddictionary::"): + fully_used_classes.add("TypedDictionary") + dict_type_name = type_name.replace("typeddictionary::", "") + if dict_type_name.startswith("const "): + dict_type_name = dict_type_name[6:] + dict_type_names = dict_type_name.split(",") + dict_type_name = dict_type_names[0] + if dict_type_name.endswith("*"): + dict_type_name = dict_type_name[:-1] + if is_included(dict_type_name, class_name): + if is_enum(dict_type_name): + fully_used_classes.add(get_enum_class(dict_type_name)) + elif is_variant(dict_type_name): + fully_used_classes.add(dict_type_name) + else: + used_classes.add(dict_type_name) + dict_type_name = dict_type_names[2] + if dict_type_name.endswith("*"): + dict_type_name = dict_type_name[:-1] + if is_included(dict_type_name, class_name): + if is_enum(dict_type_name): + fully_used_classes.add(get_enum_class(dict_type_name)) + elif is_variant(dict_type_name): + fully_used_classes.add(dict_type_name) + else: + used_classes.add(dict_type_name) elif is_enum(type_name): fully_used_classes.add(get_enum_class(type_name)) elif is_variant(type_name): @@ -1281,6 +1338,8 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us for included in fully_used_classes: if included == "TypedArray": result.append("#include ") + elif included == "TypedDictionary": + result.append("#include ") else: result.append(f"#include ") @@ -2322,6 +2381,7 @@ def is_variant(type_name): or type_name in builtin_classes or type_name == "Nil" or type_name.startswith("typedarray::") + or type_name.startswith("typeddictionary::") ) @@ -2347,6 +2407,8 @@ def is_included(type_name, current_type): """ if type_name.startswith("typedarray::"): return True + if type_name.startswith("typeddictionary::"): + return True to_include = get_enum_class(type_name) if is_enum(type_name) else type_name if to_include == current_type or is_pod_type(to_include): return False @@ -2380,6 +2442,12 @@ def correct_typed_array(type_name): return type_name +def correct_typed_dictionary(type_name): + if type_name.startswith("typeddictionary::"): + return type_name.replace("typeddictionary::", "TypedDictionary<").replace(",", ", ") + ">" + return type_name + + def correct_type(type_name, meta=None): type_conversion = {"float": "double", "int": "int64_t", "Nil": "Variant"} if meta != None: @@ -2393,6 +2461,8 @@ def correct_type(type_name, meta=None): return type_conversion[type_name] if type_name.startswith("typedarray::"): return type_name.replace("typedarray::", "TypedArray<") + ">" + if type_name.startswith("typeddictionary::"): + return type_name.replace("typeddictionary::", "TypedDictionary<").replace(",", ", ") + ">" if is_enum(type_name): if is_bitfield(type_name): base_class = get_enum_class(type_name) @@ -2497,6 +2567,8 @@ def get_default_value_for_type(type_name): return "false" if type_name.startswith("typedarray::"): return f"{correct_type(type_name)}()" + if type_name.startswith("typeddictionary::"): + return f"{correct_type(type_name)}()" if is_enum(type_name): return f"{correct_type(type_name)}(0)" if is_variant(type_name): diff --git a/gdextension/gdextension_interface.h b/gdextension/gdextension_interface.h index ab7e2de1..b461486f 100644 --- a/gdextension/gdextension_interface.h +++ b/gdextension/gdextension_interface.h @@ -2065,6 +2065,33 @@ typedef GDExtensionVariantPtr (*GDExtensionInterfaceDictionaryOperatorIndex)(GDE */ typedef GDExtensionVariantPtr (*GDExtensionInterfaceDictionaryOperatorIndexConst)(GDExtensionConstTypePtr p_self, GDExtensionConstVariantPtr p_key); +/** + * @name dictionary_ref + * @since 4.2 + * + * Sets a Dictionary to be a reference to another Dictionary object. + * + * @param p_self A pointer to the Dictionary object to update. + * @param p_from A pointer to the Dictionary object to reference. + */ +typedef void (*GDExtensionInterfaceDictionaryRef)(GDExtensionTypePtr p_self, GDExtensionConstTypePtr p_from); + +/** + * @name dictionary_set_typed + * @since 4.2 + * + * Makes a Dictionary into a typed Dictionary. + * + * @param p_self A pointer to the Dictionary. + * @param p_key_type The type of Variant the Dictionary key will store. + * @param p_key_class_name A pointer to a StringName with the name of the object (if p_key_type is GDEXTENSION_VARIANT_TYPE_OBJECT). + * @param p_key_script A pointer to a Script object (if p_key_type is GDEXTENSION_VARIANT_TYPE_OBJECT and the base class is extended by a script). + * @param p_value_type The type of Variant the Dictionary value will store. + * @param p_value_class_name A pointer to a StringName with the name of the object (if p_value_type is GDEXTENSION_VARIANT_TYPE_OBJECT). + * @param p_value_script A pointer to a Script object (if p_value_type is GDEXTENSION_VARIANT_TYPE_OBJECT and the base class is extended by a script). + */ +typedef void (*GDExtensionInterfaceDictionarySetTyped)(GDExtensionTypePtr p_self, GDExtensionVariantType p_key_type, GDExtensionConstStringNamePtr p_key_class_name, GDExtensionConstVariantPtr p_key_script, GDExtensionVariantType p_value_type, GDExtensionConstStringNamePtr p_value_class_name, GDExtensionConstVariantPtr p_value_script); + /* INTERFACE: Object */ /** diff --git a/include/godot_cpp/core/type_info.hpp b/include/godot_cpp/core/type_info.hpp index f0edda5c..dc740318 100644 --- a/include/godot_cpp/core/type_info.hpp +++ b/include/godot_cpp/core/type_info.hpp @@ -33,6 +33,7 @@ #include #include +#include #include #include @@ -395,6 +396,726 @@ MAKE_TYPED_ARRAY_INFO(Vector, Variant::PACKED_VECTOR3_ARRAY) MAKE_TYPED_ARRAY_INFO(Vector, Variant::PACKED_COLOR_ARRAY) */ +template +struct PtrToArg> { + _FORCE_INLINE_ static TypedDictionary convert(const void *p_ptr) { + return TypedDictionary(*reinterpret_cast(p_ptr)); + } + typedef Dictionary EncodeT; + _FORCE_INLINE_ static void encode(TypedDictionary p_val, void *p_ptr) { + *reinterpret_cast(p_ptr) = p_val; + } +}; + +template +struct PtrToArg &> { + typedef Dictionary EncodeT; + _FORCE_INLINE_ static TypedDictionary + convert(const void *p_ptr) { + return TypedDictionary(*reinterpret_cast(p_ptr)); + } +}; + +template +struct GetTypeInfo> { + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; + static inline PropertyInfo get_class_info() { + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", TKey::get_class_static(), TValue::get_class_static())); + } +}; + +template +struct GetTypeInfo &> { + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; + static inline PropertyInfo get_class_info() { + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", TKey::get_class_static(), TValue::get_class_static())); + } +}; + +#define MAKE_TYPED_DICTIONARY_INFO(m_type, m_variant_type) \ + template <> \ + struct GetTypeInfo> { \ + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; \ + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; \ + static inline PropertyInfo get_class_info() { \ + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", Variant::get_type_name(m_variant_type).utf8().get_data(), Variant::get_type_name(m_variant_type).utf8().get_data())); \ + } \ + }; \ + template <> \ + struct GetTypeInfo &> { \ + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; \ + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; \ + static inline PropertyInfo get_class_info() { \ + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", Variant::get_type_name(m_variant_type).utf8().get_data(), Variant::get_type_name(m_variant_type).utf8().get_data())); \ + } \ + }; + +#define MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(m_type, m_variant_type) \ + template \ + struct GetTypeInfo> { \ + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; \ + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; \ + static inline PropertyInfo get_class_info() { \ + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", T::get_class_static(), Variant::get_type_name(m_variant_type).utf8().get_data())); \ + } \ + }; \ + template \ + struct GetTypeInfo &> { \ + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; \ + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; \ + static inline PropertyInfo get_class_info() { \ + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", T::get_class_static(), Variant::get_type_name(m_variant_type).utf8().get_data())); \ + } \ + }; \ + template \ + struct GetTypeInfo> { \ + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; \ + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; \ + static inline PropertyInfo get_class_info() { \ + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", Variant::get_type_name(m_variant_type).utf8().get_data(), T::get_class_static())); \ + } \ + }; \ + template \ + struct GetTypeInfo &> { \ + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; \ + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; \ + static inline PropertyInfo get_class_info() { \ + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", Variant::get_type_name(m_variant_type).utf8().get_data(), T::get_class_static())); \ + } \ + }; + +#define MAKE_TYPED_DICTIONARY_EXPANDED_INFO(m_type_a, m_variant_type_a, m_type_b, m_variant_type_b) \ + template <> \ + struct GetTypeInfo> { \ + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; \ + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; \ + static inline PropertyInfo get_class_info() { \ + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", Variant::get_type_name(m_variant_type_a).utf8().get_data(), Variant::get_type_name(m_variant_type_b).utf8().get_data())); \ + } \ + }; \ + template <> \ + struct GetTypeInfo &> { \ + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; \ + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; \ + static inline PropertyInfo get_class_info() { \ + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", Variant::get_type_name(m_variant_type_a).utf8().get_data(), Variant::get_type_name(m_variant_type_b).utf8().get_data())); \ + } \ + }; \ + template <> \ + struct GetTypeInfo> { \ + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; \ + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; \ + static inline PropertyInfo get_class_info() { \ + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", Variant::get_type_name(m_variant_type_b).utf8().get_data(), Variant::get_type_name(m_variant_type_a).utf8().get_data())); \ + } \ + }; \ + template <> \ + struct GetTypeInfo &> { \ + static constexpr GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_DICTIONARY; \ + static constexpr GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; \ + static inline PropertyInfo get_class_info() { \ + return make_property_info(Variant::Type::DICTIONARY, "", PROPERTY_HINT_DICTIONARY_TYPE, vformat("%s,%s", Variant::get_type_name(m_variant_type_b).utf8().get_data(), Variant::get_type_name(m_variant_type_a).utf8().get_data())); \ + } \ + }; + +MAKE_TYPED_DICTIONARY_INFO(bool, Variant::BOOL) +MAKE_TYPED_DICTIONARY_INFO(uint8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_INFO(int8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_INFO(uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_INFO(int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_INFO(uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_INFO(int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_INFO(uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_INFO(int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_INFO(float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_INFO(double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_INFO(String, Variant::STRING) +MAKE_TYPED_DICTIONARY_INFO(Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_INFO(Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_INFO(Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_INFO(Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_INFO(Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_INFO(Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_INFO(Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_INFO(Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_INFO(Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_INFO(AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_INFO(Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_INFO(Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_INFO(Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_INFO(StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_INFO(NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_INFO(RID, Variant::RID) +MAKE_TYPED_DICTIONARY_INFO(Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_INFO(Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_INFO(Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_INFO(Array, Variant::ARRAY) + +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Variant, Variant::NIL) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(bool, Variant::BOOL) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(uint8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(int8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(String, Variant::STRING) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(RID, Variant::RID) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT_INFO(Array, Variant::ARRAY) + +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, bool, Variant::BOOL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, uint8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, int8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Variant, Variant::NIL, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, uint8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, int8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(bool, Variant::BOOL, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, int8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint8_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int8_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint16_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int16_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint32_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int32_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(uint64_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(int64_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(float, Variant::FLOAT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(double, Variant::FLOAT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(String, Variant::STRING, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2, Variant::VECTOR2, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector2i, Variant::VECTOR2I, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2, Variant::RECT2, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Rect2i, Variant::RECT2I, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3, Variant::VECTOR3, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Vector3i, Variant::VECTOR3I, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform2D, Variant::TRANSFORM2D, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Plane, Variant::PLANE, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Quaternion, Variant::QUATERNION, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(AABB, Variant::AABB, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(AABB, Variant::AABB, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(AABB, Variant::AABB, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(AABB, Variant::AABB, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(AABB, Variant::AABB, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(AABB, Variant::AABB, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(AABB, Variant::AABB, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(AABB, Variant::AABB, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(AABB, Variant::AABB, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(AABB, Variant::AABB, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Basis, Variant::BASIS, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Basis, Variant::BASIS, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Basis, Variant::BASIS, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Basis, Variant::BASIS, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Basis, Variant::BASIS, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Basis, Variant::BASIS, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Basis, Variant::BASIS, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Basis, Variant::BASIS, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Basis, Variant::BASIS, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform3D, Variant::TRANSFORM3D, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform3D, Variant::TRANSFORM3D, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform3D, Variant::TRANSFORM3D, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform3D, Variant::TRANSFORM3D, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform3D, Variant::TRANSFORM3D, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform3D, Variant::TRANSFORM3D, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform3D, Variant::TRANSFORM3D, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Transform3D, Variant::TRANSFORM3D, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Color, Variant::COLOR, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Color, Variant::COLOR, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Color, Variant::COLOR, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Color, Variant::COLOR, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Color, Variant::COLOR, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Color, Variant::COLOR, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Color, Variant::COLOR, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(StringName, Variant::STRING_NAME, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(StringName, Variant::STRING_NAME, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(StringName, Variant::STRING_NAME, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(StringName, Variant::STRING_NAME, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(StringName, Variant::STRING_NAME, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(StringName, Variant::STRING_NAME, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(NodePath, Variant::NODE_PATH, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(NodePath, Variant::NODE_PATH, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(NodePath, Variant::NODE_PATH, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(NodePath, Variant::NODE_PATH, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(NodePath, Variant::NODE_PATH, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(RID, Variant::RID, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(RID, Variant::RID, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(RID, Variant::RID, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(RID, Variant::RID, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Callable, Variant::CALLABLE, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Callable, Variant::CALLABLE, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Callable, Variant::CALLABLE, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Signal, Variant::SIGNAL, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Signal, Variant::SIGNAL, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED_INFO(Dictionary, Variant::DICTIONARY, Array, Variant::ARRAY) + #define CLASS_INFO(m_type) (GetTypeInfo::get_class_info()) } // namespace godot diff --git a/include/godot_cpp/godot.hpp b/include/godot_cpp/godot.hpp index 4561a75f..951fe4e8 100644 --- a/include/godot_cpp/godot.hpp +++ b/include/godot_cpp/godot.hpp @@ -153,6 +153,7 @@ extern "C" GDExtensionInterfaceArrayRef gdextension_interface_array_ref; extern "C" GDExtensionInterfaceArraySetTyped gdextension_interface_array_set_typed; extern "C" GDExtensionInterfaceDictionaryOperatorIndex gdextension_interface_dictionary_operator_index; extern "C" GDExtensionInterfaceDictionaryOperatorIndexConst gdextension_interface_dictionary_operator_index_const; +extern "C" GDExtensionInterfaceDictionarySetTyped gdextension_interface_dictionary_set_typed; extern "C" GDExtensionInterfaceObjectMethodBindCall gdextension_interface_object_method_bind_call; extern "C" GDExtensionInterfaceObjectMethodBindPtrcall gdextension_interface_object_method_bind_ptrcall; extern "C" GDExtensionInterfaceObjectDestroy gdextension_interface_object_destroy; diff --git a/include/godot_cpp/variant/typed_dictionary.hpp b/include/godot_cpp/variant/typed_dictionary.hpp new file mode 100644 index 00000000..556efcb5 --- /dev/null +++ b/include/godot_cpp/variant/typed_dictionary.hpp @@ -0,0 +1,1099 @@ +/**************************************************************************/ +/* typed_dictionary.hpp */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#ifndef GODOT_TYPED_DICTIONARY_HPP +#define GODOT_TYPED_DICTIONARY_HPP + +#include +#include + +namespace godot { + +template +class TypedDictionary : public Dictionary { +public: + _FORCE_INLINE_ void operator=(const Dictionary &p_dictionary) { + ERR_FAIL_COND_MSG(!is_same_typed(p_dictionary), "Cannot assign a dictionary with a different element type."); + Dictionary::operator=(p_dictionary); + } + _FORCE_INLINE_ TypedDictionary(const Variant &p_variant) : + Dictionary(p_variant.operator Dictionary(), Variant::OBJECT, TKey::get_class_static(), Variant(), Variant::OBJECT, TValue::get_class_static(), Variant()) { + } + _FORCE_INLINE_ TypedDictionary(const Dictionary &p_dictionary) : + Dictionary(p_dictionary, Variant::OBJECT, TKey::get_class_static(), Variant(), Variant::OBJECT, TValue::get_class_static(), Variant()) { + } + _FORCE_INLINE_ TypedDictionary() { + set_typed(Variant::OBJECT, TKey::get_class_static(), Variant(), Variant::OBJECT, TValue::get_class_static(), Variant()); + } +}; + +//specialization for the rest of variant types + +#define MAKE_TYPED_DICTIONARY(m_type, m_variant_type) \ + template <> \ + class TypedDictionary : public Dictionary { \ + public: \ + _FORCE_INLINE_ void operator=(const Dictionary &p_dictionary) { \ + ERR_FAIL_COND_MSG(!is_same_typed(p_dictionary), "Cannot assign an dictionary with a different element type."); \ + Dictionary::operator=(p_dictionary); \ + } \ + _FORCE_INLINE_ TypedDictionary(const Variant &p_variant) : \ + Dictionary(p_variant.operator Dictionary(), m_variant_type, StringName(), Variant(), m_variant_type, StringName(), Variant()) { \ + } \ + _FORCE_INLINE_ TypedDictionary(const Dictionary &p_dictionary) : \ + Dictionary(p_dictionary, m_variant_type, StringName(), Variant(), m_variant_type, StringName(), Variant()) { \ + } \ + _FORCE_INLINE_ TypedDictionary() { \ + set_typed(m_variant_type, StringName(), Variant(), m_variant_type, StringName(), Variant()); \ + } \ + }; + +#define MAKE_TYPED_DICTIONARY_WITH_OBJECT(m_type, m_variant_type) \ + template \ + class TypedDictionary : public Dictionary { \ + public: \ + _FORCE_INLINE_ void operator=(const Dictionary &p_dictionary) { \ + ERR_FAIL_COND_MSG(!is_same_typed(p_dictionary), "Cannot assign an dictionary with a different element type."); \ + Dictionary::operator=(p_dictionary); \ + } \ + _FORCE_INLINE_ TypedDictionary(const Variant &p_variant) : \ + Dictionary(p_variant.operator Dictionary(), Variant::OBJECT, T::get_class_static(), Variant(), m_variant_type, StringName(), Variant()) { \ + } \ + _FORCE_INLINE_ TypedDictionary(const Dictionary &p_dictionary) : \ + Dictionary(p_dictionary, Variant::OBJECT, T::get_class_static(), Variant(), m_variant_type, StringName(), Variant()) { \ + } \ + _FORCE_INLINE_ TypedDictionary() { \ + set_typed(Variant::OBJECT, T::get_class_static(), Variant(), m_variant_type, StringName(), Variant()); \ + } \ + }; \ + template \ + class TypedDictionary : public Dictionary { \ + public: \ + _FORCE_INLINE_ void operator=(const Dictionary &p_dictionary) { \ + ERR_FAIL_COND_MSG(!is_same_typed(p_dictionary), "Cannot assign an dictionary with a different element type."); \ + Dictionary::operator=(p_dictionary); \ + } \ + _FORCE_INLINE_ TypedDictionary(const Variant &p_variant) : \ + Dictionary(p_variant.operator Dictionary(), m_variant_type, StringName(), Variant(), Variant::OBJECT, T::get_class_static(), Variant()) { \ + } \ + _FORCE_INLINE_ TypedDictionary(const Dictionary &p_dictionary) : \ + Dictionary(p_dictionary, m_variant_type, StringName(), Variant(), Variant::OBJECT, T::get_class_static(), Variant()) { \ + } \ + _FORCE_INLINE_ TypedDictionary() { \ + set_typed(m_variant_type, StringName(), Variant(), Variant::OBJECT, T::get_class_static(), Variant()); \ + } \ + }; + +#define MAKE_TYPED_DICTIONARY_EXPANDED(m_type_a, m_variant_type_a, m_type_b, m_variant_type_b) \ + template <> \ + class TypedDictionary : public Dictionary { \ + public: \ + _FORCE_INLINE_ void operator=(const Dictionary &p_dictionary) { \ + ERR_FAIL_COND_MSG(!is_same_typed(p_dictionary), "Cannot assign an dictionary with a different element type."); \ + Dictionary::operator=(p_dictionary); \ + } \ + _FORCE_INLINE_ TypedDictionary(const Variant &p_variant) : \ + Dictionary(Dictionary(p_variant), m_variant_type_a, StringName(), Variant(), m_variant_type_b, StringName(), Variant()) { \ + } \ + _FORCE_INLINE_ TypedDictionary(const Dictionary &p_dictionary) : \ + Dictionary(p_dictionary, m_variant_type_a, StringName(), Variant(), m_variant_type_b, StringName(), Variant()) { \ + } \ + _FORCE_INLINE_ TypedDictionary() { \ + set_typed(m_variant_type_a, StringName(), Variant(), m_variant_type_b, StringName(), Variant()); \ + } \ + }; \ + template <> \ + class TypedDictionary : public Dictionary { \ + public: \ + _FORCE_INLINE_ void operator=(const Dictionary &p_dictionary) { \ + ERR_FAIL_COND_MSG(!is_same_typed(p_dictionary), "Cannot assign an dictionary with a different element type."); \ + Dictionary::operator=(p_dictionary); \ + } \ + _FORCE_INLINE_ TypedDictionary(const Variant &p_variant) : \ + Dictionary(Dictionary(p_variant), m_variant_type_b, StringName(), Variant(), m_variant_type_a, StringName(), Variant()) { \ + } \ + _FORCE_INLINE_ TypedDictionary(const Dictionary &p_dictionary) : \ + Dictionary(p_dictionary, m_variant_type_b, StringName(), Variant(), m_variant_type_a, StringName(), Variant()) { \ + } \ + _FORCE_INLINE_ TypedDictionary() { \ + set_typed(m_variant_type_b, StringName(), Variant(), m_variant_type_a, StringName(), Variant()); \ + } \ + }; + +MAKE_TYPED_DICTIONARY(bool, Variant::BOOL) +MAKE_TYPED_DICTIONARY(uint8_t, Variant::INT) +MAKE_TYPED_DICTIONARY(int8_t, Variant::INT) +MAKE_TYPED_DICTIONARY(uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY(int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY(uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY(int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY(uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY(int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY(float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY(double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY(String, Variant::STRING) +MAKE_TYPED_DICTIONARY(Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY(Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY(Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY(Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY(Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY(Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY(Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY(Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY(Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY(AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY(Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY(Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY(Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY(StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY(NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY(RID, Variant::RID) +MAKE_TYPED_DICTIONARY(Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY(Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY(Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY(Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY(PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY(PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY(PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY(PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY(PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY(PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY(PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY(PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY(PackedColorArray, Variant::PACKED_COLOR_ARRAY) + +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Variant, Variant::NIL) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(bool, Variant::BOOL) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(uint8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(int8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(String, Variant::STRING) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(RID, Variant::RID) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_WITH_OBJECT(PackedColorArray, Variant::PACKED_COLOR_ARRAY) + +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, bool, Variant::BOOL) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, uint8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, int8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Variant, Variant::NIL, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, uint8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, int8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(bool, Variant::BOOL, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, int8_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint8_t, Variant::INT, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, uint16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int8_t, Variant::INT, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, int16_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint16_t, Variant::INT, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, uint32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int16_t, Variant::INT, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, int32_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint32_t, Variant::INT, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, uint64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int32_t, Variant::INT, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, int64_t, Variant::INT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(uint64_t, Variant::INT, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, float, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(int64_t, Variant::INT, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, double, Variant::FLOAT) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(float, Variant::FLOAT, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, String, Variant::STRING) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(double, Variant::FLOAT, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Vector2, Variant::VECTOR2) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(String, Variant::STRING, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Vector2i, Variant::VECTOR2I) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2, Variant::VECTOR2, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Rect2, Variant::RECT2) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector2i, Variant::VECTOR2I, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Rect2i, Variant::RECT2I) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2, Variant::RECT2, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Vector3, Variant::VECTOR3) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Rect2i, Variant::RECT2I, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Vector3i, Variant::VECTOR3I) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3, Variant::VECTOR3, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, Transform2D, Variant::TRANSFORM2D) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Vector3i, Variant::VECTOR3I, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, Plane, Variant::PLANE) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform2D, Variant::TRANSFORM2D, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, Quaternion, Variant::QUATERNION) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Plane, Variant::PLANE, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, AABB, Variant::AABB) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Quaternion, Variant::QUATERNION, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, Basis, Variant::BASIS) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(AABB, Variant::AABB, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, Transform3D, Variant::TRANSFORM3D) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Basis, Variant::BASIS, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, Color, Variant::COLOR) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Transform3D, Variant::TRANSFORM3D, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, StringName, Variant::STRING_NAME) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Color, Variant::COLOR, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, NodePath, Variant::NODE_PATH) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(StringName, Variant::STRING_NAME, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, RID, Variant::RID) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(NodePath, Variant::NODE_PATH, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, Callable, Variant::CALLABLE) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(RID, Variant::RID, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, Signal, Variant::SIGNAL) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Callable, Variant::CALLABLE, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, Dictionary, Variant::DICTIONARY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Signal, Variant::SIGNAL, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Dictionary, Variant::DICTIONARY, Array, Variant::ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Dictionary, Variant::DICTIONARY, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Dictionary, Variant::DICTIONARY, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Dictionary, Variant::DICTIONARY, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Dictionary, Variant::DICTIONARY, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Dictionary, Variant::DICTIONARY, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Dictionary, Variant::DICTIONARY, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Dictionary, Variant::DICTIONARY, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Dictionary, Variant::DICTIONARY, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Dictionary, Variant::DICTIONARY, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Array, Variant::ARRAY, PackedByteArray, Variant::PACKED_BYTE_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Array, Variant::ARRAY, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Array, Variant::ARRAY, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Array, Variant::ARRAY, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Array, Variant::ARRAY, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Array, Variant::ARRAY, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Array, Variant::ARRAY, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Array, Variant::ARRAY, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(Array, Variant::ARRAY, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedByteArray, Variant::PACKED_BYTE_ARRAY, PackedInt32Array, Variant::PACKED_INT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedByteArray, Variant::PACKED_BYTE_ARRAY, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedByteArray, Variant::PACKED_BYTE_ARRAY, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedByteArray, Variant::PACKED_BYTE_ARRAY, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedByteArray, Variant::PACKED_BYTE_ARRAY, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedByteArray, Variant::PACKED_BYTE_ARRAY, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedByteArray, Variant::PACKED_BYTE_ARRAY, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedByteArray, Variant::PACKED_BYTE_ARRAY, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt32Array, Variant::PACKED_INT32_ARRAY, PackedInt64Array, Variant::PACKED_INT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt32Array, Variant::PACKED_INT32_ARRAY, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt32Array, Variant::PACKED_INT32_ARRAY, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt32Array, Variant::PACKED_INT32_ARRAY, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt32Array, Variant::PACKED_INT32_ARRAY, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt32Array, Variant::PACKED_INT32_ARRAY, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt32Array, Variant::PACKED_INT32_ARRAY, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt64Array, Variant::PACKED_INT64_ARRAY, PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt64Array, Variant::PACKED_INT64_ARRAY, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt64Array, Variant::PACKED_INT64_ARRAY, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt64Array, Variant::PACKED_INT64_ARRAY, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt64Array, Variant::PACKED_INT64_ARRAY, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedInt64Array, Variant::PACKED_INT64_ARRAY, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY, PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedFloat32Array, Variant::PACKED_FLOAT32_ARRAY, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY, PackedStringArray, Variant::PACKED_STRING_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedFloat64Array, Variant::PACKED_FLOAT64_ARRAY, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedStringArray, Variant::PACKED_STRING_ARRAY, PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedStringArray, Variant::PACKED_STRING_ARRAY, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedStringArray, Variant::PACKED_STRING_ARRAY, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY, PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY, PackedColorArray, Variant::PACKED_COLOR_ARRAY) +MAKE_TYPED_DICTIONARY_EXPANDED(PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY, PackedColorArray, Variant::PACKED_COLOR_ARRAY) + +} // namespace godot + +#endif // GODOT_TYPED_DICTIONARY_HPP diff --git a/src/godot.cpp b/src/godot.cpp index 05413ff1..2d7ddedc 100644 --- a/src/godot.cpp +++ b/src/godot.cpp @@ -159,6 +159,7 @@ GDExtensionInterfaceArrayRef gdextension_interface_array_ref = nullptr; GDExtensionInterfaceArraySetTyped gdextension_interface_array_set_typed = nullptr; GDExtensionInterfaceDictionaryOperatorIndex gdextension_interface_dictionary_operator_index = nullptr; GDExtensionInterfaceDictionaryOperatorIndexConst gdextension_interface_dictionary_operator_index_const = nullptr; +GDExtensionInterfaceDictionarySetTyped gdextension_interface_dictionary_set_typed = nullptr; GDExtensionInterfaceObjectMethodBindCall gdextension_interface_object_method_bind_call = nullptr; GDExtensionInterfaceObjectMethodBindPtrcall gdextension_interface_object_method_bind_ptrcall = nullptr; GDExtensionInterfaceObjectDestroy gdextension_interface_object_destroy = nullptr; @@ -376,6 +377,7 @@ GDExtensionBool GDExtensionBinding::init(GDExtensionInterfaceGetProcAddress p_ge LOAD_PROC_ADDRESS(array_set_typed, GDExtensionInterfaceArraySetTyped); LOAD_PROC_ADDRESS(dictionary_operator_index, GDExtensionInterfaceDictionaryOperatorIndex); LOAD_PROC_ADDRESS(dictionary_operator_index_const, GDExtensionInterfaceDictionaryOperatorIndexConst); + LOAD_PROC_ADDRESS(dictionary_set_typed, GDExtensionInterfaceDictionarySetTyped); LOAD_PROC_ADDRESS(object_method_bind_call, GDExtensionInterfaceObjectMethodBindCall); LOAD_PROC_ADDRESS(object_method_bind_ptrcall, GDExtensionInterfaceObjectMethodBindPtrcall); LOAD_PROC_ADDRESS(object_destroy, GDExtensionInterfaceObjectDestroy); diff --git a/src/variant/packed_arrays.cpp b/src/variant/packed_arrays.cpp index 65b00025..c5c2d77c 100644 --- a/src/variant/packed_arrays.cpp +++ b/src/variant/packed_arrays.cpp @@ -227,4 +227,10 @@ Variant &Dictionary::operator[](const Variant &p_key) { return *var; } +void Dictionary::set_typed(uint32_t p_key_type, const StringName &p_key_class_name, const Variant &p_key_script, uint32_t p_value_type, const StringName &p_value_class_name, const Variant &p_value_script) { + // p_key_type/p_value_type are not Variant::Type so that header doesn't depend on . + internal::gdextension_interface_dictionary_set_typed((GDExtensionTypePtr *)this, (GDExtensionVariantType)p_key_type, (GDExtensionConstStringNamePtr)&p_key_class_name, (GDExtensionConstVariantPtr)&p_key_script, + (GDExtensionVariantType)p_value_type, (GDExtensionConstStringNamePtr)&p_value_class_name, (GDExtensionConstVariantPtr)&p_value_script); +} + } // namespace godot diff --git a/test/project/main.gd b/test/project/main.gd index f51ef3b6..3a21e8de 100644 --- a/test/project/main.gd +++ b/test/project/main.gd @@ -78,10 +78,13 @@ func _ready(): # Array and Dictionary assert_equal(example.test_array(), [1, 2]) - assert_equal(example.test_tarray(), [ Vector2(1, 2), Vector2(2, 3) ]) - assert_equal(example.test_dictionary(), {"hello": "world", "foo": "bar"}) + assert_equal(example.test_tarray(), [Vector2(1, 2), Vector2(2, 3)]) var array: Array[int] = [1, 2, 3] assert_equal(example.test_tarray_arg(array), 6) + assert_equal(example.test_dictionary(), { "hello": "world", "foo": "bar" }) + assert_equal(example.test_tdictionary(), { Vector2(1, 2): Vector2i(2, 3) }) + var dictionary: Dictionary[String, int] = { "1": 1, "2": 2, "3": 3 } + assert_equal(example.test_tdictionary_arg(dictionary), 6) # String += operator assert_equal(example.test_string_ops(), "ABCĎE") diff --git a/test/src/example.cpp b/test/src/example.cpp index 759cc4f7..6e1d1faa 100644 --- a/test/src/example.cpp +++ b/test/src/example.cpp @@ -143,6 +143,8 @@ void Example::_bind_methods() { ClassDB::bind_method(D_METHOD("test_tarray_arg", "array"), &Example::test_tarray_arg); ClassDB::bind_method(D_METHOD("test_tarray"), &Example::test_tarray); ClassDB::bind_method(D_METHOD("test_dictionary"), &Example::test_dictionary); + ClassDB::bind_method(D_METHOD("test_tdictionary_arg", "dictionary"), &Example::test_tdictionary_arg); + ClassDB::bind_method(D_METHOD("test_tdictionary"), &Example::test_tdictionary); ClassDB::bind_method(D_METHOD("test_node_argument"), &Example::test_node_argument); ClassDB::bind_method(D_METHOD("test_string_ops"), &Example::test_string_ops); ClassDB::bind_method(D_METHOD("test_str_utility"), &Example::test_str_utility); @@ -440,6 +442,23 @@ Dictionary Example::test_dictionary() const { return dict; } +int Example::test_tdictionary_arg(const TypedDictionary &p_dictionary) { + int sum = 0; + TypedArray values = p_dictionary.values(); + for (int i = 0; i < p_dictionary.size(); i++) { + sum += (int)values[i]; + } + return sum; +} + +TypedDictionary Example::test_tdictionary() const { + TypedDictionary dict; + + dict[Vector2(1, 2)] = Vector2i(2, 3); + + return dict; +} + Example *Example::test_node_argument(Example *p_node) const { return p_node; } diff --git a/test/src/example.h b/test/src/example.h index 4dfda23e..6013bad9 100644 --- a/test/src/example.h +++ b/test/src/example.h @@ -118,6 +118,8 @@ public: int test_tarray_arg(const TypedArray &p_array); TypedArray test_tarray() const; Dictionary test_dictionary() const; + int test_tdictionary_arg(const TypedDictionary &p_dictionary); + TypedDictionary test_tdictionary() const; Example *test_node_argument(Example *p_node) const; String test_string_ops() const; String test_str_utility() const;