mirror of
https://github.com/bevyengine/bevy
synced 2024-11-22 12:43:34 +00:00
Fix asset loader registration warning (#11870)
# Objective When registering and preregistering asset loaders, there would be a `warn!` if multiple asset loaders use a given extension, and an `info!` if multiple asset loaders load the same asset type. Since both of these situations are individually fine, it was decided that these messages should be removed. ## Solution Replace both of these messages with a new `warn!` that notes that if multiple asset loaders share the same asset type _and_ share extensions, that the loader must be specified in the `.meta` file for those assets in order to solve the ambiguity. This is a more useful message, since it notes when a user must take special action / consideration.
This commit is contained in:
parent
ebaa347afe
commit
16d710cb3f
1 changed files with 13 additions and 7 deletions
|
@ -3,7 +3,7 @@ use crate::{
|
|||
path::AssetPath,
|
||||
};
|
||||
use async_broadcast::RecvError;
|
||||
use bevy_log::{error, info, warn};
|
||||
use bevy_log::{error, warn};
|
||||
use bevy_tasks::IoTaskPool;
|
||||
use bevy_utils::{HashMap, TypeIdMap};
|
||||
use std::{any::TypeId, sync::Arc};
|
||||
|
@ -40,6 +40,7 @@ impl AssetLoaders {
|
|||
};
|
||||
|
||||
if is_new {
|
||||
let mut duplicate_extensions = Vec::new();
|
||||
for extension in loader.extensions() {
|
||||
let list = self
|
||||
.extension_to_loaders
|
||||
|
@ -47,7 +48,7 @@ impl AssetLoaders {
|
|||
.or_default();
|
||||
|
||||
if !list.is_empty() {
|
||||
warn!("duplicate registration for extension `{extension}`.");
|
||||
duplicate_extensions.push(extension);
|
||||
}
|
||||
|
||||
list.push(loader_index);
|
||||
|
@ -60,8 +61,10 @@ impl AssetLoaders {
|
|||
.entry(loader_asset_type)
|
||||
.or_default();
|
||||
|
||||
if !list.is_empty() {
|
||||
info!("duplicate registration for type `{loader_asset_type_name}`.");
|
||||
let duplicate_asset_registration = !list.is_empty();
|
||||
if !duplicate_extensions.is_empty() && duplicate_asset_registration {
|
||||
warn!("Duplicate AssetLoader registered for Asset type `{loader_asset_type_name}` with extensions `{duplicate_extensions:?}`. \
|
||||
Loader must be specified in a .meta file in order to load assets of this type with these extensions.");
|
||||
}
|
||||
|
||||
list.push(loader_index);
|
||||
|
@ -98,6 +101,7 @@ impl AssetLoaders {
|
|||
|
||||
self.preregistered_loaders.insert(type_name, loader_index);
|
||||
self.type_name_to_loader.insert(type_name, loader_index);
|
||||
let mut duplicate_extensions = Vec::new();
|
||||
for extension in extensions {
|
||||
let list = self
|
||||
.extension_to_loaders
|
||||
|
@ -105,7 +109,7 @@ impl AssetLoaders {
|
|||
.or_default();
|
||||
|
||||
if !list.is_empty() {
|
||||
warn!("duplicate preregistration for extension `{extension}`.");
|
||||
duplicate_extensions.push(extension);
|
||||
}
|
||||
|
||||
list.push(loader_index);
|
||||
|
@ -116,8 +120,10 @@ impl AssetLoaders {
|
|||
.entry(loader_asset_type)
|
||||
.or_default();
|
||||
|
||||
if !list.is_empty() {
|
||||
info!("duplicate preregistration for type `{loader_asset_type_name}`.");
|
||||
let duplicate_asset_registration = !list.is_empty();
|
||||
if !duplicate_extensions.is_empty() && duplicate_asset_registration {
|
||||
warn!("Duplicate AssetLoader preregistered for Asset type `{loader_asset_type_name}` with extensions `{duplicate_extensions:?}`. \
|
||||
Loader must be specified in a .meta file in order to load assets of this type with these extensions.");
|
||||
}
|
||||
|
||||
list.push(loader_index);
|
||||
|
|
Loading…
Reference in a new issue