diff options
Diffstat (limited to 'core/object/object.h')
-rw-r--r-- | core/object/object.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/core/object/object.h b/core/object/object.h index d697f14b7e..f97691841f 100644 --- a/core/object/object.h +++ b/core/object/object.h @@ -165,7 +165,7 @@ struct PropertyInfo { PropertyInfo() {} - PropertyInfo(const Variant::Type p_type, const String p_name, const PropertyHint p_hint = PROPERTY_HINT_NONE, const String &p_hint_string = "", const uint32_t p_usage = PROPERTY_USAGE_DEFAULT, const StringName &p_class_name = StringName()) : + PropertyInfo(const Variant::Type p_type, const String &p_name, const PropertyHint p_hint = PROPERTY_HINT_NONE, const String &p_hint_string = "", const uint32_t p_usage = PROPERTY_USAGE_DEFAULT, const StringName &p_class_name = StringName()) : type(p_type), name(p_name), hint(p_hint), @@ -317,6 +317,10 @@ struct ObjectGDExtension { bool is_virtual = false; bool is_abstract = false; bool is_exposed = true; +#ifdef TOOLS_ENABLED + bool is_runtime = false; + bool is_placeholder = false; +#endif GDExtensionClassSet set; GDExtensionClassGet get; GDExtensionClassGetPropertyList get_property_list; @@ -354,8 +358,8 @@ struct ObjectGDExtension { #ifdef TOOLS_ENABLED void *tracking_userdata = nullptr; - void (*track_instance)(void *p_userdata, void *p_instance); - void (*untrack_instance)(void *p_userdata, void *p_instance); + void (*track_instance)(void *p_userdata, void *p_instance) = nullptr; + void (*untrack_instance)(void *p_userdata, void *p_instance) = nullptr; #endif }; @@ -698,7 +702,11 @@ protected: virtual void _notificationv(int p_notification, bool p_reversed) {} static void _bind_methods(); +#ifndef DISABLE_DEPRECATED + static void _bind_compatibility_methods(); +#else static void _bind_compatibility_methods() {} +#endif bool _set(const StringName &p_name, const Variant &p_property) { return false; }; bool _get(const StringName &p_name, Variant &r_property) const { return false; }; void _get_property_list(List<PropertyInfo> *p_list) const {}; @@ -755,6 +763,7 @@ protected: void _clear_internal_resource_paths(const Variant &p_var); friend class ClassDB; + friend class PlaceholderExtensionInstance; bool _disconnect(const StringName &p_signal, const Callable &p_callable, bool p_force = false); @@ -947,8 +956,6 @@ public: Variant::Type get_static_property_type(const StringName &p_property, bool *r_valid = nullptr) const; Variant::Type get_static_property_type_indexed(const Vector<StringName> &p_path, bool *r_valid = nullptr) const; - virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const; - // Translate message (internationalization). String tr(const StringName &p_message, const StringName &p_context = "") const; String tr_n(const StringName &p_message, const StringName &p_message_plural, int p_n, const StringName &p_context = "") const; @@ -960,6 +967,7 @@ public: _FORCE_INLINE_ bool can_translate_messages() const { return _can_translate; } #ifdef TOOLS_ENABLED + virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const; void editor_set_section_unfold(const String &p_section, bool p_unfolded); bool editor_is_section_unfolded(const String &p_section); const HashSet<String> &editor_get_section_folding() const { return editor_section_folding; } @@ -977,6 +985,7 @@ public: #ifdef TOOLS_ENABLED void clear_internal_extension(); void reset_internal_extension(ObjectGDExtension *p_extension); + bool is_extension_placeholder() const { return _extension && _extension->is_placeholder; } #endif void clear_internal_resource_paths(); |