From 97091c639b33d67e850d85f07eafad0cb1d4e69e Mon Sep 17 00:00:00 2001 From: HolonProduction Date: Sun, 5 Apr 2026 14:10:48 +0200 Subject: [PATCH] Deprecate `ScriptLanguage::instance_has` --- core/object/script_language.cpp | 9 ++++++++- core/object/script_language.h | 5 ++++- core/object/script_language_extension.cpp | 6 ++++-- core/object/script_language_extension.h | 5 ++++- core/typedefs.h | 16 ++++++++++++++++ doc/classes/Script.xml | 2 +- doc/classes/ScriptExtension.xml | 2 +- modules/gdscript/gdscript.cpp | 9 --------- modules/gdscript/gdscript.h | 1 - modules/mono/csharp_script.cpp | 5 ----- modules/mono/csharp_script.h | 1 - 11 files changed, 38 insertions(+), 23 deletions(-) diff --git a/core/object/script_language.cpp b/core/object/script_language.cpp index 9f35e19b6c..a2322a4fc1 100644 --- a/core/object/script_language.cpp +++ b/core/object/script_language.cpp @@ -163,7 +163,6 @@ PropertyInfo Script::get_class_category() const { void Script::_bind_methods() { ClassDB::bind_method(D_METHOD("can_instantiate"), &Script::can_instantiate); //ClassDB::bind_method(D_METHOD("instance_create","base_object"),&Script::instance_create); - ClassDB::bind_method(D_METHOD("instance_has", "base_object"), &Script::instance_has); ClassDB::bind_method(D_METHOD("has_source_code"), &Script::has_source_code); ClassDB::bind_method(D_METHOD("get_source_code"), &Script::get_source_code); ClassDB::bind_method(D_METHOD("set_source_code", "source"), &Script::set_source_code); @@ -187,6 +186,14 @@ void Script::_bind_methods() { ClassDB::bind_method(D_METHOD("get_rpc_config"), &Script::_get_rpc_config_bind); +#ifndef DISABLE_DEPRECATED + GODOT_PUSH_IGNORE_DEPRECATION(); + + ClassDB::bind_method(D_METHOD("instance_has", "base_object"), &Script::instance_has); + + GODOT_POP_IGNORE_DEPRECATION(); +#endif // !DISABLE_DEPRECATED + ADD_PROPERTY(PropertyInfo(Variant::STRING, "source_code", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_source_code", "get_source_code"); } diff --git a/core/object/script_language.h b/core/object/script_language.h index 2c2f38bc75..41e35442fc 100644 --- a/core/object/script_language.h +++ b/core/object/script_language.h @@ -151,7 +151,6 @@ public: virtual StringName get_instance_base_type() const = 0; // this may not work in all scripts, will return empty if so virtual ScriptInstance *instance_create(Object *p_this) = 0; virtual PlaceHolderScriptInstance *placeholder_instance_create(Object *p_this) { return nullptr; } - virtual bool instance_has(const Object *p_this) const = 0; virtual bool has_source_code() const = 0; virtual String get_source_code() const = 0; @@ -200,6 +199,10 @@ public: Script() { _define_ancestry(AncestralClass::SCRIPT); } + +#ifndef DISABLE_DEPRECATED + [[deprecated("Use Object::get_script instead.")]] bool instance_has(const Object *p_this) const { return p_this != nullptr && Object::cast_to