diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2022-08-23 07:58:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-23 07:58:26 +0200 |
commit | f97f5a6146106bcb0525371f38c9f799281b62bb (patch) | |
tree | 86d8bbf102e2f632caf0e689441433ed2ea16f63 | |
parent | 7e4817a096f68bbc1f6cf2c57a674821831524ec (diff) | |
parent | a6963320d66a0d07270ee925e64f130bf60ae58d (diff) |
Merge pull request #64428 from godotengine/gdextension-ignore-property-array
Ignore class's property array when generating extension_api.json (not…
-rw-r--r-- | core/extension/extension_api_dump.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/core/extension/extension_api_dump.cpp b/core/extension/extension_api_dump.cpp index 867b1fc637..7023d4aa9b 100644 --- a/core/extension/extension_api_dump.cpp +++ b/core/extension/extension_api_dump.cpp @@ -52,6 +52,9 @@ static String get_type_name(const PropertyInfo &p_info) { if (p_info.type == Variant::INT && (p_info.usage & (PROPERTY_USAGE_CLASS_IS_BITFIELD))) { return String("bitfield::") + String(p_info.class_name); } + if (p_info.type == Variant::INT && (p_info.usage & PROPERTY_USAGE_ARRAY)) { + return "int"; + } if (p_info.class_name != StringName()) { return p_info.class_name; } @@ -840,12 +843,16 @@ Dictionary NativeExtensionAPIDump::generate_extension_api() { List<PropertyInfo> property_list; ClassDB::get_property_list(class_name, &property_list, true); for (const PropertyInfo &F : property_list) { - if (F.usage & PROPERTY_USAGE_CATEGORY || F.usage & PROPERTY_USAGE_GROUP || F.usage & PROPERTY_USAGE_SUBGROUP) { + if (F.usage & PROPERTY_USAGE_CATEGORY || F.usage & PROPERTY_USAGE_GROUP || F.usage & PROPERTY_USAGE_SUBGROUP || (F.type == Variant::NIL && F.usage & PROPERTY_USAGE_ARRAY)) { continue; //not real properties } if (F.name.begins_with("_")) { continue; //hidden property } + if (F.name.find("/") >= 0) { + // Ignore properties with '/' (slash) in the name. These are only meant for use in the inspector. + continue; + } StringName property_name = F.name; Dictionary d2; d2["type"] = get_type_name(F); |