Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix reimporting textures after changing import project settings #94975

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions editor/editor_file_system.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ bool EditorFileSystem::_test_for_reimport(const String &p_path, bool p_only_impo
Error err;
Ref<FileAccess> f = FileAccess::open(p_path + ".import", FileAccess::READ, &err);

if (f.is_null()) { //no import file, do reimport
if (f.is_null()) { // No import file, reimport.
return true;
}

Expand Down Expand Up @@ -472,10 +472,15 @@ bool EditorFileSystem::_test_for_reimport(const String &p_path, bool p_only_impo
break;
} else if (err != OK) {
ERR_PRINT("ResourceFormatImporter::load - '" + p_path + ".import:" + itos(lines) + "' error '" + error_text + "'.");
return false; //parse error, try reimport manually (Avoid reimport loop on broken file)
// Parse error, skip and let user attempt manual reimport to avoid reimport loop.
return false;
}

if (!assign.is_empty()) {
if (assign == "valid" && value.operator bool() == false) {
// Invalid import (failed previous import), skip and let user attempt manual reimport to avoid reimport loop.
return false;
}
if (assign.begins_with("path")) {
to_check.push_back(value);
} else if (assign == "files") {
Expand All @@ -502,6 +507,11 @@ bool EditorFileSystem::_test_for_reimport(const String &p_path, bool p_only_impo
}
}

if (!ResourceFormatImporter::get_singleton()->are_import_settings_valid(p_path)) {
// Reimport settings are out of sync with project settings, reimport.
return true;
}

if (importer_name == "keep" || importer_name == "skip") {
return false; //keep mode, do not reimport
}
Expand Down
Loading