summaryrefslogtreecommitdiffstats
path: root/core/object/script_language_extension.h
diff options
context:
space:
mode:
authorYuri Sizov <yuris@humnom.net>2023-09-27 19:07:50 +0200
committerYuri Sizov <yuris@humnom.net>2023-09-27 19:07:50 +0200
commit5f53ec9129c4afcbff013dcf6fc1effd7e398c2c (patch)
treeb313f4b420cc1da8931f0d5b805b5eaa4e88f201 /core/object/script_language_extension.h
parentaa474c9feb489576de38240e2d9e87f7dbd65e28 (diff)
parent531f56e8307c5e9691a6db2f589025af28d200ea (diff)
downloadredot-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.h17
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