Something went wrong on our end
resources.rs 1.11 KiB
use bevy::prelude::*;
use bevy::utils::HashMap;
use musicbox::prelude::AudioSource;
use musicbox::utilities::SuppliesAudio;
#[derive(Copy, Clone, Debug)]
pub struct SpriteSheetConfig {
pub tile_width: usize,
pub tile_height: usize,
pub columns: usize,
pub rows: usize,
}
impl SpriteSheetConfig {
pub fn squares(tile_wh: usize, columns: usize, rows: usize) -> Self {
Self {
tile_width: tile_wh,
tile_height: tile_wh,
columns,
rows,
}
}
pub fn rectangles(tile_width: usize, tile_height: usize, columns: usize, rows: usize) -> Self {
Self {
tile_width,
tile_height,
columns,
rows,
}
}
}
#[derive(Default)]
pub struct AssetHandles {
pub(crate) images: HashMap<String, Handle<Image>>,
pub(crate) atlas: HashMap<String, Handle<TextureAtlas>>,
pub(crate) sounds: HashMap<String, Handle<AudioSource>>,
}
impl SuppliesAudio for AssetHandles {
fn get_audio_track<T: ToString>(&self, name: T) -> Option<Handle<AudioSource>> {
self.sounds.get(&name.to_string()).map(Handle::clone_weak)
}
}
pub type AssetNameMapping = (String, String);
pub type FixedAssetNameMapping = (&'static str, &'static str);