diff --git a/crates/bevy_asset/src/assets.rs b/crates/bevy_asset/src/assets.rs index 2a4f2c361f00bc..c9bb9666075ed7 100644 --- a/crates/bevy_asset/src/assets.rs +++ b/crates/bevy_asset/src/assets.rs @@ -272,25 +272,24 @@ pub trait AddAsset { impl AddAsset for App { /// Add an [`Asset`] to the [`App`]. /// - /// Adding the same [`Asset`] several time is idempotent. + /// Adding the same [`Asset`] again after it has been added does nothing. fn add_asset(&mut self) -> &mut Self where T: Asset, { - if !self.world.contains_resource::>() { - let assets = { - let asset_server = self.world.get_resource::().unwrap(); - asset_server.register_asset_type::() - }; - - self.insert_resource(assets) - .add_system_to_stage(AssetStage::AssetEvents, Assets::::asset_event_system) - .add_system_to_stage(AssetStage::LoadAssets, update_asset_storage_system::) - .register_type::>() - .add_event::>() - } else { - self + if self.world.contains_resource::>() { + return self; } + let assets = { + let asset_server = self.world.get_resource::().unwrap(); + asset_server.register_asset_type::() + }; + + self.insert_resource(assets) + .add_system_to_stage(AssetStage::AssetEvents, Assets::::asset_event_system) + .add_system_to_stage(AssetStage::LoadAssets, update_asset_storage_system::) + .register_type::>() + .add_event::>() } fn init_asset_loader(&mut self) -> &mut Self