diff --git a/Cargo.lock b/Cargo.lock index c6a7a85644c45f372625dd7611cb550d0849bd55..966fca9a335ba5342913ea526686a48efcd86c74 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -110,9 +110,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.62" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" [[package]] name = "approx" @@ -453,14 +453,15 @@ dependencies = [ [[package]] name = "bevy_kira_audio" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7d902ab6a15bd45af04d47b208a24f95205d8d2fd1fa15dd4e86a570fad813b" +checksum = "0379febb94c497ac6f6b5c0ef27775f7302f65dc780a33dbcec0c743a474b5f4" dependencies = [ "anyhow", "bevy", "kira", "parking_lot 0.12.1", + "thiserror", ] [[package]] @@ -1493,7 +1494,7 @@ dependencies = [ "fastrand", "iyes_loopless", "log 0.4.17", - "musicbox", + "micro_musicbox", "remote_events", "serde", "serde_json", @@ -1856,9 +1857,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -2010,6 +2011,17 @@ dependencies = [ "objc", ] +[[package]] +name = "micro_musicbox" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51777e5d26d5e3faf89e2f8265d27c579ef97088e57f9ea2ba933c67d9757d5e" +dependencies = [ + "bevy", + "bevy_kira_audio", + "serde", +] + [[package]] name = "mime" version = "0.2.6" @@ -2046,17 +2058,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "musicbox" -version = "0.2.0-pre.1" -source = "git+https://lab.lcr.gr/microhacks/micro-bevy-musicbox.git?rev=5ab4120a983e54ef0786ddca43b92a70605efd49#5ab4120a983e54ef0786ddca43b92a70605efd49" -dependencies = [ - "bevy", - "bevy_kira_audio", - "serde", - "serde_json", -] - [[package]] name = "naga" version = "0.9.0" @@ -2327,9 +2328,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" [[package]] name = "opaque-debug" @@ -2839,18 +2840,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" dependencies = [ "proc-macro2", "quote", @@ -2859,9 +2860,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.83" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ "itoa", "ryu", @@ -2958,9 +2959,7 @@ checksum = "17033fe05e4f7f10a6ad602c272bafd2520b2e5cdd9feb61494d9cdce08e002f" dependencies = [ "lazy_static", "symphonia-bundle-mp3", - "symphonia-codec-vorbis", "symphonia-core", - "symphonia-format-ogg", "symphonia-metadata", ] @@ -2977,17 +2976,6 @@ dependencies = [ "symphonia-metadata", ] -[[package]] -name = "symphonia-codec-vorbis" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "323b94435a1a807e1001e29490aeaef2660fb72b145d47497e8429a6cb1d67c3" -dependencies = [ - "log 0.4.17", - "symphonia-core", - "symphonia-utils-xiph", -] - [[package]] name = "symphonia-core" version = "0.5.1" @@ -3001,18 +2989,6 @@ dependencies = [ "log 0.4.17", ] -[[package]] -name = "symphonia-format-ogg" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d2f741469a0f103607ed1f2605f7f00b13ba044ea9ddc616764558c6d3d9b7d" -dependencies = [ - "log 0.4.17", - "symphonia-core", - "symphonia-metadata", - "symphonia-utils-xiph", -] - [[package]] name = "symphonia-metadata" version = "0.5.1" @@ -3025,21 +3001,11 @@ dependencies = [ "symphonia-core", ] -[[package]] -name = "symphonia-utils-xiph" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73cbb0766ce77a8aef535f9438db645e7b6f1b2c4cf3be9bf246b4e11a7d5531" -dependencies = [ - "symphonia-core", - "symphonia-metadata", -] - [[package]] name = "syn" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +checksum = "52205623b1b0f064a4e71182c3b18ae902267282930c6d5462c91b859668426e" dependencies = [ "proc-macro2", "quote", @@ -3084,18 +3050,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.32" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.32" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2", "quote", @@ -3260,9 +3226,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" +checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" [[package]] name = "unicode-normalization" @@ -3361,9 +3327,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -3371,9 +3337,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", "log 0.4.17", @@ -3398,9 +3364,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3408,9 +3374,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", @@ -3421,9 +3387,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "wasm-sockets" @@ -3439,9 +3405,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/Cargo.toml b/Cargo.toml index 1dc593ec8bc215b4799bd77a95ca776c9a902b2a..2373223697f2645f46895711eb3a95e4ae9350c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,15 @@ members = [ "game_core", ] +[workspace.dependencies] +anyhow = "1.0.65" +log = "0.4.17" +thiserror = "1.0.37" +serde = "1.0.145" +serde_json = "1.0.85" + [profile.release] debug = 0 opt-level = 3 + + diff --git a/game_core/Cargo.toml b/game_core/Cargo.toml index fb635702092d1e3693b0322cf32b58a7f7f66504..f787c4b33216fc12f1a6fca617d64fcc44a932be 100644 --- a/game_core/Cargo.toml +++ b/game_core/Cargo.toml @@ -6,19 +6,20 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -fastrand = "1.7" -anyhow = "1" -log = "0.4" -thiserror = "1" -serde = "1" -serde_json = "1" -iyes_loopless = "0.7" +anyhow.workspace = true +log.workspace = true +thiserror.workspace = true +serde.workspace = true +serde_json.workspace = true -musicbox = { git = "https://lab.lcr.gr/microhacks/micro-bevy-musicbox.git", rev = "5ab4120a983e54ef0786ddca43b92a70605efd49"} +fastrand = "1.8.0" +iyes_loopless = "0.7.1" + +micro_musicbox = { version = "0.4.0", features = ["serde", "mp3"] } remote_events = { git = "https://lab.lcr.gr/microhacks/micro-bevy-remote-events.git", rev = "be0c6b43a73e4c5e7ece20797e3d6f59340147b4"} [target.'cfg(target_arch = "wasm32")'.dependencies] -web-sys = { version = "0.3.58", features = ["Window"] } +web-sys = { version = "0.3.60", features = ["Window"] } [dependencies.bevy] version = "0.8" diff --git a/game_core/src/assets/loader.rs b/game_core/src/assets/loader.rs index c5af903fd29f6ddf9e079494c65cc97466606e49..af87ab3c09beaef6049062392807a508e4d18de3 100644 --- a/game_core/src/assets/loader.rs +++ b/game_core/src/assets/loader.rs @@ -4,7 +4,7 @@ use bevy::asset::LoadState; use bevy::ecs::system::SystemParam; use bevy::prelude::*; use bevy::reflect::TypeUuid; -use musicbox::prelude::AudioSource; +use micro_musicbox::prelude::AudioSource; use crate::assets::{AssetHandles, FixedAssetNameMapping, SpriteSheetConfig}; diff --git a/game_core/src/assets/resources.rs b/game_core/src/assets/resources.rs index 34bb68bc1c0901b306462b4f524507f6e3887692..5809e4c59386e7732fb9058864cee109bcaaf6bc 100644 --- a/game_core/src/assets/resources.rs +++ b/game_core/src/assets/resources.rs @@ -1,7 +1,7 @@ use bevy::prelude::*; use bevy::utils::HashMap; -use musicbox::prelude::AudioSource; -use musicbox::utilities::SuppliesAudio; +use micro_musicbox::prelude::AudioSource; +use micro_musicbox::utilities::{SuppliesAudio, TrackType}; #[derive(Copy, Clone, Debug)] pub struct SpriteSheetConfig { @@ -69,6 +69,14 @@ impl AssetHandles { } impl SuppliesAudio for AssetHandles { + fn resolve_track_name<T: ToString>(&self, name: T) -> TrackType<String> { + if self.sounds.contains_key(&name.to_string()) { + TrackType::Single(name.to_string()) + } else { + TrackType::Missing + } + } + fn get_audio_track<T: ToString>(&self, name: T) -> Option<Handle<AudioSource>> { self.sounds.get(&name.to_string()).map(Handle::clone_weak) } diff --git a/game_core/src/main.rs b/game_core/src/main.rs index f8a6d3a4f666dda2c46444d068d5a00463e6a1f5..8d7c57b49e5d161c1501e1ccb56f4c3709154641 100644 --- a/game_core/src/main.rs +++ b/game_core/src/main.rs @@ -2,8 +2,9 @@ use bevy::prelude::*; use game_core::system::flow::AppState; use game_core::system::resources::DefaultResourcesPlugin; use iyes_loopless::prelude::AppLooplessStateExt; -use musicbox::CombinedAudioPlugins; +use micro_musicbox::CombinedAudioPlugins; use remote_events::RemoteEventPlugin; +use game_core::assets::AssetHandles; fn main() { App::new() @@ -11,7 +12,7 @@ fn main() { .add_plugin(DefaultResourcesPlugin) .add_plugins(DefaultPlugins) .add_plugin(game_core::assets::AssetsPlugin) - .add_plugins(CombinedAudioPlugins) + .add_plugins(CombinedAudioPlugins::<AssetHandles>::new()) .add_plugin(game_core::splash_screen::SplashScreenPlugin) .add_plugin(game_core::system::camera::CameraManagementPlugin) .add_plugin(RemoteEventPlugin::< diff --git a/game_core/src/splash_screen/systems.rs b/game_core/src/splash_screen/systems.rs index 23cfa668d7e8b483fcbe22f0424ac2f2289d3709..1894942c7741b7865c187d05f6cfcf7156cc47c1 100644 --- a/game_core/src/splash_screen/systems.rs +++ b/game_core/src/splash_screen/systems.rs @@ -2,7 +2,7 @@ use bevy::prelude::*; use bevy::render::render_resource::FilterMode; use bevy::render::texture::ImageSampler; use iyes_loopless::state::NextState; -use musicbox::prelude::MusicBox; +use micro_musicbox::prelude::MusicBox; use crate::assets::AssetHandles; use crate::splash_screen::components::{ @@ -65,7 +65,7 @@ pub fn setup_splash_screen( }; image_data.sampler_descriptor = ImageSampler::linear(); - music_box.play_effect_once("splash_sting"); + music_box.play_sfx("splash_sting"); commands .spawn_bundle(SpriteBundle {