From 5ac42cf5766cd60a9c41bdd6045c8ccfd35d62c1 Mon Sep 17 00:00:00 2001 From: reduz Date: Fri, 24 Jun 2022 11:16:37 +0200 Subject: Implement a BitField hint Allows to specify the binder that an enum must be treated as a bitfield. --- core/extension/extension_api_dump.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'core/extension') diff --git a/core/extension/extension_api_dump.cpp b/core/extension/extension_api_dump.cpp index 9d846f87c2..d5c49b01e9 100644 --- a/core/extension/extension_api_dump.cpp +++ b/core/extension/extension_api_dump.cpp @@ -46,7 +46,7 @@ static String get_type_name(const PropertyInfo &p_info) { return p_info.hint_string + "*"; } } - if (p_info.type == Variant::INT && (p_info.usage & PROPERTY_USAGE_CLASS_IS_ENUM)) { + if (p_info.type == Variant::INT && (p_info.usage & (PROPERTY_USAGE_CLASS_IS_ENUM | PROPERTY_USAGE_CLASS_IS_BITFIELD))) { return String("enum::") + String(p_info.class_name); } if (p_info.class_name != StringName()) { @@ -665,6 +665,7 @@ Dictionary NativeExtensionAPIDump::generate_extension_api() { for (const StringName &F : enum_list) { Dictionary d2; d2["name"] = String(F); + d2["is_bitfield"] = ClassDB::is_enum_bitfield(class_name, F); Array values; List enum_constant_list; -- cgit v1.2.3