diff --git a/Cargo.toml b/Cargo.toml index 8dfe121acc8037fd3afba01b1aa0e8ed321c3eb0..099a75dc666705a4da8e482f59ba26237465d9be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "micro_musicbox" -version = "0.8.0" +version = "0.9.0" edition = "2021" license = "Apache-2.0" authors = ["Louis Capitanchik <louis@microhacks.co.uk>"] @@ -35,10 +35,10 @@ ogg = ["bevy_kira_audio/ogg"] settings = ["bevy_kira_audio/settings_loader"] [dependencies] -bevy = { version = "0.12", default-features = false } -bevy_kira_audio = { version = "0.18.0", default-features = false } +bevy = { version = "0.13", default-features = false } +bevy_kira_audio = { version = "0.19.0", default-features = false } serde = { version = "1", optional = true } [dev_dependencies] -bevy = "0.12" +bevy = "0.13" log = "0.4" diff --git a/README.md b/README.md index 6304318f657192151025e910a381937c8d8cb780..41984127273f5da13ff53debe22f895efb8d9253 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,7 @@ The examples in this repository use assets available under the following license | musicbox version | bevy version | bka version | |------------------|--------------|-------------| +| 0.9 | 0.13 | 0.19 | | 0.8 | 0.12 | 0.18 | | 0.7 | 0.11 | 0.16 | | 0.6 | 0.10 | 0.15 | diff --git a/examples/kitchen_sink.rs b/examples/kitchen_sink.rs index 3f0ca50cef3b09db2b62a3a0fb931d05bd316454..e6e765e08434fdee134ae12d72b9720bb02c05bc 100644 --- a/examples/kitchen_sink.rs +++ b/examples/kitchen_sink.rs @@ -33,7 +33,7 @@ pub fn main() { OnEnter(AppState::Running), set_instructions ) - .add_systems(Update, cross_fade_tracks.run_if(resource_exists::<MusicState>())) + .add_systems(Update, cross_fade_tracks.run_if(resource_exists::<MusicState>)) .run(); } @@ -64,7 +64,7 @@ pub fn setup_audio(mut commands: Commands, mut musicbox: MusicBox<AssetServer>) } pub fn cross_fade_tracks( - input: Res<Input<KeyCode>>, + input: Res<ButtonInput<KeyCode>>, mut music_box: MusicBox<AssetServer>, mut music_state: ResMut<MusicState>, ) { @@ -90,7 +90,7 @@ pub fn cross_fade_tracks( music_box.set_music_volume(value as f32 / 10.0); } - if input.just_released(KeyCode::Return) { + if input.just_released(KeyCode::Enter) { // // You can also get a mutable ref for the settings, in case you // need to do any maths with them. If you don't need `MusicBox` @@ -106,24 +106,24 @@ pub fn cross_fade_tracks( } } -fn map_key_values(input: &Res<Input<KeyCode>>) -> Option<usize> { - if input.just_released(KeyCode::Key1) { +fn map_key_values(input: &Res<ButtonInput<KeyCode>>) -> Option<usize> { + if input.just_released(KeyCode::Digit1) { Some(1) - } else if input.just_released(KeyCode::Key2) { + } else if input.just_released(KeyCode::Digit2) { Some(2) - } else if input.just_released(KeyCode::Key3) { + } else if input.just_released(KeyCode::Digit3) { Some(3) - } else if input.just_released(KeyCode::Key4) { + } else if input.just_released(KeyCode::Digit4) { Some(4) - } else if input.just_released(KeyCode::Key5) { + } else if input.just_released(KeyCode::Digit5) { Some(5) - } else if input.just_released(KeyCode::Key6) { + } else if input.just_released(KeyCode::Digit6) { Some(6) - } else if input.just_released(KeyCode::Key7) { + } else if input.just_released(KeyCode::Digit7) { Some(7) - } else if input.just_released(KeyCode::Key8) { + } else if input.just_released(KeyCode::Digit8) { Some(8) - } else if input.just_released(KeyCode::Key9) { + } else if input.just_released(KeyCode::Digit9) { Some(9) } else { None diff --git a/examples/utilities/mod.rs b/examples/utilities/mod.rs index 25a143827798edb6ef7beafaf0fbd20f368fa933..d2fd7136ef876ce5d6396cce5d2b4852f1789f45 100644 --- a/examples/utilities/mod.rs +++ b/examples/utilities/mod.rs @@ -103,12 +103,12 @@ pub fn create_ui(mut commands: Commands, assets: Res<AssetServer>) { pub struct SetupPlugin; impl Plugin for SetupPlugin { fn build(&self, app: &mut App) { - app.add_state::<AppState>() + app.init_state::<AppState>() .add_systems(Startup, (load_resources, create_ui)) .add_systems( Update, check_load_state - .run_if(resource_exists::<AudioResources>()) + .run_if(resource_exists::<AudioResources>) .run_if(in_state(AppState::Loading)), ); } diff --git a/src/lib.rs b/src/lib.rs index e20b0091c0b2cbbf29eb6381dc887ac3f027e626..e8d871ea7b172af0a3644b0a0dbbac2caf4d17d6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,6 +16,7 @@ //! # use micro_musicbox::CombinedAudioPlugins; //! fn main() { //! App::new() +//! .add_plugins(AssetPlugin::default()) //! .add_plugins(CombinedAudioPlugins::<AssetServer>::new()) //! .add_systems(Startup, |mut music_box: MusicBox<AssetServer>| { //! music_box.play_music("music/bing_bong.mp3"); diff --git a/src/music_box.rs b/src/music_box.rs index 6e5214e9a2e441582dee1c454a69d47b573fa2cc..a7912de3b8d9bbe1f22536f63f9390fd7cc927e1 100644 --- a/src/music_box.rs +++ b/src/music_box.rs @@ -1,5 +1,3 @@ -use std::marker::PhantomData; - use bevy::ecs::system::SystemParam; use bevy::prelude::{Assets, DetectChanges, Handle, Res, ResMut, Resource}; use bevy_kira_audio::{AudioChannel, AudioControl, AudioInstance, AudioSource, AudioTween}; diff --git a/src/utilities.rs b/src/utilities.rs index be41dfe9f6503f795e68cfa756bedd9af385f71a..2814e9d3ce1ee05876090622e998fd40a7ce9c2d 100644 --- a/src/utilities.rs +++ b/src/utilities.rs @@ -13,16 +13,23 @@ use crate::music_box::MusicBox; /// as a `SuppliesAudio` extension: /// /// ```rust -/// # use micro_musicbox::utilities::{TrackType, SuppliesAudio}; +/// # use bevy::ecs::system::SystemParam; +/// use micro_musicbox::prelude::AudioSource; +/// use micro_musicbox::utilities::{TrackType, SuppliesAudio}; /// # use bevy::prelude::*; +/// use bevy::utils::HashMap; /// -/// impl SuppliesAudio for AssetServer { -/// fn resolve_track_name<T: ToString>(&self, name: T) -> TrackType<String> { /// +/// #[derive(Resource)] +/// struct MyAudioMap(pub HashMap<String, Handle<AudioSource>>); +/// +/// impl SuppliesAudio for MyAudioMap { +/// fn resolve_track_name<T: ToString>(&self, name: T) -> TrackType<String> { /// TrackType::Single(name.to_string()) /// } /// /// fn get_audio_track<T: ToString>(&self, name: T) -> Option<Handle<AudioSource>> { -/// Some(self.load(&name.to_string())) +/// let key = name.to_string(); +/// self.0.get(&key).map(|h| h.clone_weak()) /// } /// } /// ```