From f7045eb06f799dfad13b180395b2acad04a5de40 Mon Sep 17 00:00:00 2001
From: Louis Capitanchik <contact@louiscap.co>
Date: Sat, 24 Feb 2024 02:46:04 +0000
Subject: [PATCH] Update to bevy 0.13, bka 0.19

---
 Cargo.toml                |  8 ++++----
 README.md                 |  1 +
 examples/kitchen_sink.rs  | 26 +++++++++++++-------------
 examples/utilities/mod.rs |  4 ++--
 src/lib.rs                |  1 +
 src/music_box.rs          |  2 --
 src/utilities.rs          | 15 +++++++++++----
 7 files changed, 32 insertions(+), 25 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 8dfe121..099a75d 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 6304318..4198412 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 3f0ca50..e6e765e 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 25a1438..d2fd713 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 e20b009..e8d871e 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 6e5214e..a7912de 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 be41dfe..2814e9d 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())
 ///     }
 /// }
 /// ```
-- 
GitLab