diff options
author | Yuri Sizov <yuris@humnom.net> | 2023-09-27 19:07:50 +0200 |
---|---|---|
committer | Yuri Sizov <yuris@humnom.net> | 2023-09-27 19:07:50 +0200 |
commit | 5f53ec9129c4afcbff013dcf6fc1effd7e398c2c (patch) | |
tree | b313f4b420cc1da8931f0d5b805b5eaa4e88f201 /core/object/script_language_extension.h | |
parent | aa474c9feb489576de38240e2d9e87f7dbd65e28 (diff) | |
parent | 531f56e8307c5e9691a6db2f589025af28d200ea (diff) | |
download | redot-engine-5f53ec9129c4afcbff013dcf6fc1effd7e398c2c.tar.gz |
Merge pull request #78995 from Gallilus/master
Allow implementing `get_class_category` in GDExtension
Diffstat (limited to 'core/object/script_language_extension.h')
-rw-r--r-- | core/object/script_language_extension.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/core/object/script_language_extension.h b/core/object/script_language_extension.h index 3e8284670c..b682efec12 100644 --- a/core/object/script_language_extension.h +++ b/core/object/script_language_extension.h @@ -670,9 +670,20 @@ public: const GDExtensionPropertyInfo *pinfo = native_info->get_property_list_func(instance, &pcount); #ifdef TOOLS_ENABLED - Ref<Script> script = get_script(); - if (script.is_valid() && pcount > 0) { - p_list->push_back(script->get_class_category()); + if (pcount > 0) { + if (native_info->get_class_category_func) { + GDExtensionPropertyInfo gdext_class_category; + if (native_info->get_class_category_func(instance, &gdext_class_category)) { + p_list->push_back(PropertyInfo(gdext_class_category)); + } +#ifndef DISABLE_DEPRECATED + } else { + Ref<Script> script = get_script(); + if (script.is_valid()) { + p_list->push_back(script->get_class_category()); + } +#endif // DISABLE_DEPRECATED + } } #endif // TOOLS_ENABLED |