Remap script path when registering class.

Was causing `class_name`-defined scripts to not being loaded in exported
games due to the remap from `*.gd` to `*.gdc`/`*.gde`.

(cherry picked from commit fceb64827e)
This commit is contained in:
Fabio Alessandrelli 2020-08-04 15:46:40 +02:00 committed by Rémi Verschelde
parent f732cea0ff
commit a97b84378c

View file

@ -31,6 +31,7 @@
#include "script_language.h" #include "script_language.h"
#include "core/core_string_names.h" #include "core/core_string_names.h"
#include "core/io/resource_loader.h"
#include "core/os/file_access.h" #include "core/os/file_access.h"
#include "core/project_settings.h" #include "core/project_settings.h"
@ -167,7 +168,7 @@ void ScriptServer::init_languages() {
for (int i = 0; i < script_classes.size(); i++) { for (int i = 0; i < script_classes.size(); i++) {
Dictionary c = script_classes[i]; Dictionary c = script_classes[i];
if (!c.has("class") || !c.has("language") || !c.has("path") || !FileAccess::exists(c["path"]) || !c.has("base")) if (!c.has("class") || !c.has("language") || !c.has("path") || !FileAccess::exists(ResourceLoader::path_remap(c["path"])) || !c.has("base"))
continue; continue;
add_global_class(c["class"], c["base"], c["language"], c["path"]); add_global_class(c["class"], c["base"], c["language"], c["path"]);
} }