ResourceImporter: Restore default append logic for new importers

This was changed in #56943 to allow adding new importers from plugins that
take precedence over built-in ones, but this should be opt-in, not the default
behavior.

Fixes #57730.
This commit is contained in:
Rémi Verschelde 2022-02-07 09:38:42 +01:00
parent 863f2840a5
commit ec00283f91
No known key found for this signature in database
GPG key ID: C3336907360768E1
7 changed files with 40 additions and 21 deletions

View file

@ -2088,18 +2088,26 @@ ResourceImporterScene::ResourceImporterScene() {
singleton = this;
}
void ResourceImporterScene::add_importer(Ref<EditorSceneFormatImporter> p_importer) {
void ResourceImporterScene::add_importer(Ref<EditorSceneFormatImporter> p_importer, bool p_first_priority) {
ERR_FAIL_COND(p_importer.is_null());
importers.insert(0, p_importer);
if (p_first_priority) {
importers.insert(0, p_importer);
} else {
importers.push_back(p_importer);
}
}
void ResourceImporterScene::remove_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin) {
post_importer_plugins.erase(p_plugin);
}
void ResourceImporterScene::add_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin) {
void ResourceImporterScene::add_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin, bool p_first_priority) {
ERR_FAIL_COND(p_plugin.is_null());
post_importer_plugins.insert(0, p_plugin);
if (p_first_priority) {
post_importer_plugins.insert(0, p_plugin);
} else {
post_importer_plugins.push_back(p_plugin);
}
}
void ResourceImporterScene::remove_importer(Ref<EditorSceneFormatImporter> p_importer) {

View file

@ -224,12 +224,12 @@ class ResourceImporterScene : public ResourceImporter {
public:
static ResourceImporterScene *get_singleton() { return singleton; }
void add_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin);
void add_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin, bool p_first_priority = false);
void remove_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin);
const Vector<Ref<EditorSceneFormatImporter>> &get_importers() const { return importers; }
void add_importer(Ref<EditorSceneFormatImporter> p_importer);
void add_importer(Ref<EditorSceneFormatImporter> p_importer, bool p_first_priority = false);
void remove_importer(Ref<EditorSceneFormatImporter> p_importer);
virtual String get_importer_name() const override;