Merge pull request #115158 from timothyqiu/drop-type-inherit

Take custom type of parent scripts into account when dropping onready variables
This commit is contained in:
Thaddeus Crews 2026-01-28 17:58:19 -06:00
commit 63c0e9a9fb
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC

View file

@ -2443,14 +2443,13 @@ void ScriptTextEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data
String variable_name = String(node->get_name()).to_snake_case().validate_unicode_identifier();
if (use_type) {
StringName class_name = node->get_class_name();
StringName custom_class_name;
Ref<Script> node_script = node->get_script();
if (node_script.is_valid()) {
StringName global_node_script_name = node_script->get_global_name();
if (!global_node_script_name.is_empty()) {
class_name = global_node_script_name;
}
while (node_script.is_valid() && custom_class_name.is_empty()) {
custom_class_name = node_script->get_global_name();
node_script = node_script->get_base_script();
}
const StringName class_name = custom_class_name.is_empty() ? node->get_class_name() : custom_class_name;
text_to_drop += vformat("@onready var %s: %s = %c%s", variable_name, class_name, is_unique ? '%' : '$', path);
} else {
text_to_drop += vformat("@onready var %s = %c%s", variable_name, is_unique ? '%' : '$', path);