diff --git a/crates/bevy_asset/src/server/loaders.rs b/crates/bevy_asset/src/server/loaders.rs index bdb41fcd353b4..adc24d9a5a486 100644 --- a/crates/bevy_asset/src/server/loaders.rs +++ b/crates/bevy_asset/src/server/loaders.rs @@ -154,18 +154,11 @@ impl AssetLoaders { /// Find an [`AssetLoader`] based on provided search criteria pub(crate) fn find( &self, - type_name: Option<&str>, asset_type_id: Option, - extension: Option<&str>, - asset_path: Option<&AssetPath<'_>>, + asset_path: &AssetPath<'_>, ) -> Option { - // If provided the type name of the loader, return that immediately - if let Some(type_name) = type_name { - return self.get_by_name(type_name); - } - // The presence of a label will affect loader choice - let label = asset_path.as_ref().and_then(|path| path.label()); + let label = asset_path.label(); // Try by asset type let candidates = if let Some(type_id) = asset_type_id { @@ -207,15 +200,8 @@ impl AssetLoaders { } }; - // Try the provided extension - if let Some(extension) = extension - && let Some(&index) = try_extension(extension) - { - return self.get_by_index(index); - } - // Try extracting the extension from the path - if let Some(full_extension) = asset_path.and_then(AssetPath::get_full_extension) { + if let Some(full_extension) = asset_path.get_full_extension() { if let Some(&index) = try_extension(full_extension) { return self.get_by_index(index); } @@ -236,15 +222,15 @@ impl AssetLoaders { { Some(loader) => { warn!( - "Multiple AssetLoaders found for Asset: {:?}; Path: {:?}; Extension: {:?}", - asset_type_id, asset_path, extension + "Multiple AssetLoaders found for Asset: {:?}; Path: {:?};", + asset_type_id, asset_path ); Some(loader) } None => { warn!( - "No AssetLoader found for Asset: {:?}; Path: {:?}; Extension: {:?}", - asset_type_id, asset_path, extension + "No AssetLoader found for Asset: {:?}; Path: {:?};", + asset_type_id, asset_path ); None } @@ -597,10 +583,8 @@ mod tests { let loader = block_on( loaders .find( - None, Some(TypeId::of::()), - None, - Some(&AssetPath::from_path(Path::new("asset.a"))), + &AssetPath::from_path(Path::new("asset.a")), ) .unwrap() .get(), @@ -618,10 +602,8 @@ mod tests { let loader = block_on( loaders .find( - None, Some(TypeId::of::()), - None, - Some(&AssetPath::from_path(Path::new("asset.b"))), + &AssetPath::from_path(Path::new("asset.b")), ) .unwrap() .get(), @@ -639,10 +621,8 @@ mod tests { let loader = block_on( loaders .find( - None, Some(TypeId::of::()), - None, - Some(&AssetPath::from_path(Path::new("asset.c"))), + &AssetPath::from_path(Path::new("asset.c")), ) .unwrap() .get(), @@ -662,10 +642,8 @@ mod tests { let loader = block_on( loaders .find( - None, Some(TypeId::of::()), - None, - Some(&AssetPath::from_path(Path::new("asset.a"))), + &AssetPath::from_path(Path::new("asset.a")), ) .unwrap() .get(), @@ -683,10 +661,8 @@ mod tests { let loader = block_on( loaders .find( - None, Some(TypeId::of::()), - None, - Some(&AssetPath::from_path(Path::new("asset.b"))), + &AssetPath::from_path(Path::new("asset.b")), ) .unwrap() .get(), @@ -706,10 +682,8 @@ mod tests { let loader = block_on( loaders .find( - None, Some(TypeId::of::()), - None, - Some(&AssetPath::from_path(Path::new("asset.x"))), + &AssetPath::from_path(Path::new("asset.x")), ) .unwrap() .get(), @@ -727,10 +701,8 @@ mod tests { let loader = block_on( loaders .find( - None, Some(TypeId::of::()), - None, - Some(&AssetPath::from_path(Path::new("asset"))), + &AssetPath::from_path(Path::new("asset")), ) .unwrap() .get(), @@ -766,10 +738,8 @@ mod tests { let loader = block_on( loaders .find( - None, Some(TypeId::of::()), - None, - Some(&AssetPath::from_path(Path::new("asset.a"))), + &AssetPath::from_path(Path::new("asset.a")), ) .unwrap() .get(), @@ -785,10 +755,8 @@ mod tests { let loader = block_on( loaders .find( - None, Some(TypeId::of::()), - None, - Some(&AssetPath::from_path(Path::new("asset.x"))), + &AssetPath::from_path(Path::new("asset.x")), ) .unwrap() .get(), @@ -804,10 +772,8 @@ mod tests { let loader = block_on( loaders .find( - None, Some(TypeId::of::()), - None, - Some(&AssetPath::from_path(Path::new("asset"))), + &AssetPath::from_path(Path::new("asset")), ) .unwrap() .get(), diff --git a/crates/bevy_asset/src/server/mod.rs b/crates/bevy_asset/src/server/mod.rs index 5acec33171294..ff99929bf514e 100644 --- a/crates/bevy_asset/src/server/mod.rs +++ b/crates/bevy_asset/src/server/mod.rs @@ -1554,16 +1554,11 @@ impl AssetServer { } Err(AssetReaderError::NotFound(_)) => { // TODO: Handle error transformation - let loader = { - self.read_loaders() - .find(None, asset_type_id, None, Some(asset_path)) - }; + let loader = { self.read_loaders().find(asset_type_id, asset_path) }; let error = || AssetLoadError::MissingAssetLoader { - loader_name: None, asset_type_id, - extension: None, - asset_path: Some(asset_path.to_string()), + asset_path: asset_path.to_string(), }; let loader = loader.ok_or_else(error)?.get().await.map_err(|_| error())?; @@ -1574,16 +1569,11 @@ impl AssetServer { Err(err) => return Err(err.into()), } } else { - let loader = { - self.read_loaders() - .find(None, asset_type_id, None, Some(asset_path)) - }; + let loader = { self.read_loaders().find(asset_type_id, asset_path) }; let error = || AssetLoadError::MissingAssetLoader { - loader_name: None, asset_type_id, - extension: None, - asset_path: Some(asset_path.to_string()), + asset_path: asset_path.to_string(), }; let loader = loader.ok_or_else(error)?.get().await.map_err(|_| error())?; @@ -2110,12 +2100,10 @@ pub enum AssetLoadError { actual_asset_name: &'static str, loader_name: &'static str, }, - #[error("Could not find an asset loader matching: Loader Name: {loader_name:?}; Asset Type: {asset_type_id:?}; Extension: {extension:?}; Path: {asset_path:?};")] + #[error("Could not find an asset loader matching: Asset Type: {asset_type_id:?}; Path: {asset_path:?};")] MissingAssetLoader { - loader_name: Option, asset_type_id: Option, - extension: Option, - asset_path: Option, + asset_path: String, }, #[error(transparent)] MissingAssetLoaderForExtension(#[from] MissingAssetLoaderForExtensionError),