diff options
Diffstat (limited to 'core/object/script_language_extension.h')
-rw-r--r-- | core/object/script_language_extension.h | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/core/object/script_language_extension.h b/core/object/script_language_extension.h index e06f005320..b682efec12 100644 --- a/core/object/script_language_extension.h +++ b/core/object/script_language_extension.h @@ -110,6 +110,12 @@ public: EXBIND0RC(bool, is_tool) EXBIND0RC(bool, is_valid) + virtual bool is_abstract() const override { + bool abst; + return GDVIRTUAL_CALL(_is_abstract, abst) && abst; + } + GDVIRTUAL0RC(bool, _is_abstract) + EXBIND0RC(ScriptLanguage *, get_language) EXBIND1RC(bool, has_script_signal, const StringName &) @@ -344,7 +350,9 @@ public: GDVIRTUAL_REQUIRED_CALL(_create_script, ret); return Object::cast_to<Script>(ret); } +#ifndef DISABLE_DEPRECATED EXBIND0RC(bool, has_named_classes) +#endif EXBIND0RC(bool, supports_builtin_mode) EXBIND0RC(bool, supports_documentation) EXBIND0RC(bool, can_inherit_from_file) @@ -633,7 +641,7 @@ public: const GDExtensionScriptInstanceInfo2 *native_info; bool free_native_info = false; struct { - GDExtensionClassNotification notification_func; + GDExtensionScriptInstanceNotification notification_func = nullptr; } deprecated_native_info; GDExtensionScriptInstanceDataPtr instance = nullptr; @@ -662,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 |