mirror of
https://github.com/godotengine/godot
synced 2024-09-05 04:48:26 +00:00
Improve autoload inheritance error message
Autoloaded scripts should always inherit from Node. When you run a project that tries to autoload a script which doesn’t inherit from Node, then Godot gives an error. Before this change, the error said “Script does not inherit a Node”. That error message is a little bit misleading. If a class inherits a Node, then one of its superclasses has a Node. If a class inherits _from_ Node, then one of its superclasses is Node. This change corrects that mistake. Fixes #59884.
This commit is contained in:
parent
53317bbe14
commit
1cc7e7ec33
|
@ -406,7 +406,7 @@ Node *EditorAutoloadSettings::_create_autoload(const String &p_path) {
|
|||
} else if (script.is_valid()) {
|
||||
StringName ibt = script->get_instance_base_type();
|
||||
bool valid_type = ClassDB::is_parent_class(ibt, "Node");
|
||||
ERR_FAIL_COND_V_MSG(!valid_type, nullptr, "Script does not inherit a Node: " + p_path + ".");
|
||||
ERR_FAIL_COND_V_MSG(!valid_type, nullptr, "Script does not inherit from Node: " + p_path + ".");
|
||||
|
||||
Object *obj = ClassDB::instantiate(ibt);
|
||||
|
||||
|
|
|
@ -2336,7 +2336,7 @@ bool Main::start() {
|
|||
} else if (script_res.is_valid()) {
|
||||
StringName ibt = script_res->get_instance_base_type();
|
||||
bool valid_type = ClassDB::is_parent_class(ibt, "Node");
|
||||
ERR_CONTINUE_MSG(!valid_type, "Script does not inherit a Node: " + info.path);
|
||||
ERR_CONTINUE_MSG(!valid_type, "Script does not inherit from Node: " + info.path);
|
||||
|
||||
Object *obj = ClassDB::instantiate(ibt);
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ void init_autoloads() {
|
|||
} else if (script.is_valid()) {
|
||||
StringName ibt = script->get_instance_base_type();
|
||||
bool valid_type = ClassDB::is_parent_class(ibt, "Node");
|
||||
ERR_CONTINUE_MSG(!valid_type, "Script does not inherit a Node: " + info.path);
|
||||
ERR_CONTINUE_MSG(!valid_type, "Script does not inherit from Node: " + info.path);
|
||||
|
||||
Object *obj = ClassDB::instantiate(ibt);
|
||||
|
||||
|
|
Loading…
Reference in a new issue