diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2024-09-20 21:35:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-20 21:35:08 +0200 |
commit | 621cadcf651b93757d5dbf8969023ae62a16f1a4 (patch) | |
tree | 79efec5d0c0dbfe1c1e1c9b71f04e9c8c2186d28 /core/object/script_language.cpp | |
parent | 2be730a05b7ff221b89c967981f7caee6e164ef0 (diff) | |
parent | 96382204736cbc131fbc2640ba6ba238c53017c0 (diff) | |
download | redot-engine-621cadcf651b93757d5dbf8969023ae62a16f1a4.tar.gz |
Merge pull request #97168 from Hilderin/fix-reloading-scripts-already-in-use
Fix reloading scripts already in use
Diffstat (limited to 'core/object/script_language.cpp')
-rw-r--r-- | core/object/script_language.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/object/script_language.cpp b/core/object/script_language.cpp index d2fc7392c8..c5856a8a81 100644 --- a/core/object/script_language.cpp +++ b/core/object/script_language.cpp @@ -191,7 +191,17 @@ void Script::reload_from_file() { set_source_code(rel->get_source_code()); set_last_modified_time(rel->get_last_modified_time()); - reload(); + // Only reload the script when there are no compilation errors to prevent printing the error messages twice. + if (rel->is_valid()) { + if (Engine::get_singleton()->is_editor_hint() && is_tool()) { + get_language()->reload_tool_script(this, true); + } else { + // It's important to set p_keep_state to true in order to manage reloading scripts + // that are currently instantiated. + reload(true); + } + } + #else Resource::reload_from_file(); #endif |