use bevy::{prelude::*, utils::HashMap}; use crate::GameState; use bevy_asset_loader::prelude::*; // use bevy_egui::{EguiContexts, egui, egui::ProgressBar}; use bevy_kira_audio::{AudioPlugin, AudioSource}; // use iyes_progress::{ProgressCounter, ProgressPlugin}; /// Loads resources and assets for the game. /// See assets/main.assets.ron for the actual paths used. pub(super) fn plugin(app: &mut App) { app.add_plugins(AudioPlugin).add_loading_state( LoadingState::new(GameState::Loading) .continue_to_state(GameState::Menu) .with_dynamic_assets_file::("main.assets.ron") .load_collection::() .load_collection::() .load_collection::() .load_collection::(), // .load_collection::() // .load_collection::() // .load_collection::(), ); } // the following asset collections will be loaded during the State `GameState::InitialLoading` // when done loading, they will be inserted as resources (see ) #[derive(AssetCollection, Resource, Clone)] pub(crate) struct AudioAssets { #[asset(key = "flashlight_click")] pub(crate) flash_click: Handle, #[asset(key = "monster_footsteps")] pub(crate) monster_footsteps: Handle, } #[derive(AssetCollection, Resource, Clone)] pub(crate) struct GltfAssets { #[asset(key = "library", collection(typed, mapped))] pub(crate) library: HashMap>, #[asset(key = "id_card")] pub(crate) card: Handle, } #[derive(AssetCollection, Resource, Clone)] pub(crate) struct TextureAssets {} #[derive(AssetCollection, Resource, Clone)] pub(crate) struct GrassAssets {} #[derive(AssetCollection, Resource, Clone)] pub(crate) struct ConfigAssets {} #[derive(AssetCollection, Resource, Clone)] pub(crate) struct ImageAssets { #[asset(key = "lebron")] pub(crate) king: Handle, #[asset(key = "id_card_toolbar")] pub(crate) id_card: Handle, } #[derive(AssetCollection, Resource, Clone)] pub(crate) struct FlashlightAssets { #[asset(key = "flash_hold_0")] pub(crate) flash_hold_0: Handle, #[asset(key = "flash_hold_0_pressed")] pub(crate) flash_hold_0_pressed: Handle, #[asset(key = "flash_hold_1")] pub(crate) flash_hold_1: Handle, #[asset(key = "flash_hold_1_pressed")] pub(crate) flash_hold_1_pressed: Handle, #[asset(key = "flash_hold_2")] pub(crate) flash_hold_2: Handle, #[asset(key = "flash_hold_2_pressed")] pub(crate) flash_hold_2_pressed: Handle, #[asset(key = "flash_hold_3")] pub(crate) flash_hold_3: Handle, #[asset(key = "flash_hold_3_pressed")] pub(crate) flash_hold_3_pressed: Handle, #[asset(key = "flash_hold_4")] pub(crate) flash_hold_4: Handle, #[asset(key = "flash_hold_4_pressed")] pub(crate) flash_hold_4_pressed: Handle, }