diff --git a/game/src/audio.rs b/game/src/audio.rs index 339cb767b0046f78196c08e29c8979bae9ee172f..0d978af3671121b655af97eafceb10c2dc190786 100644 --- a/game/src/audio.rs +++ b/game/src/audio.rs @@ -1,6 +1,6 @@ -use bevy::{prelude::*}; +use bevy::prelude::*; -use super::{despawn_screen, GameState}; +use super::{despawn_screen, GameState, Volume}; pub struct AudioPlugin; @@ -8,31 +8,32 @@ impl Plugin for AudioPlugin { fn build(&self, app: &mut App) { app .add_systems(OnEnter(GameState::Victory), audio_win) - .add_systems(OnExit(GameState::Victory), despawn_screen::<AudioMenu>) + .add_systems(OnExit(GameState::Victory), despawn_screen::<Audio>) .add_systems(OnEnter(GameState::GameOver), audio_defeat) - .add_systems(OnExit(GameState::GameOver), despawn_screen::<AudioMenu>) + .add_systems(OnExit(GameState::GameOver), despawn_screen::<Audio>) .add_systems(OnEnter(GameState::Menu), audio_menu) - .add_systems(OnExit(GameState::Menu), despawn_screen::<AudioMenu>) + .add_systems(OnExit(GameState::Menu), despawn_screen::<Audio>) .add_systems(OnEnter(GameState::Game), audio_game) - .add_systems(OnExit(GameState::Game), despawn_screen::<AudioMenu>) + .add_systems(OnExit(GameState::Game), despawn_screen::<Audio>) .add_systems(OnEnter(GameState::Fight), audio_fight) - .add_systems(OnExit(GameState::Fight), despawn_screen::<AudioMenu>); + .add_systems(OnExit(GameState::Fight), despawn_screen::<Audio>) + .add_systems(Update, audio_volume); } } #[derive(Component)] -struct AudioMenu; +struct Audio; fn audio_win(mut commands: Commands, asset_server: Res<AssetServer>) { commands .spawn(( AudioBundle { - source: asset_server.load("sound/victoire.ogg"), + source: asset_server.load("sound/victoire.ogg"), //connecter le volum avec le settings ..default() }, - AudioMenu, + Audio, )); } @@ -44,7 +45,7 @@ fn audio_defeat (mut commands: Commands, asset_server: Res<AssetServer>) { //connecter le volum avec le settings ..default() }, - AudioMenu, + Audio, )); } @@ -56,7 +57,7 @@ fn audio_menu (mut commands: Commands, asset_server: Res<AssetServer>) { //connecter le volum avec le settings ..default() }, - AudioMenu, + Audio, )); } @@ -68,7 +69,7 @@ fn audio_game (mut commands: Commands, asset_server: Res<AssetServer>) { //connecter le volum avec le settings ..default() }, - AudioMenu, + Audio, )); } @@ -80,6 +81,15 @@ fn audio_fight (mut commands: Commands, asset_server: Res<AssetServer>) { //connecter le volum avec le settings ..default() }, - AudioMenu, + Audio, )); +} + +fn audio_volume(volume_audio: Res<Volume>, + mut audio: Query<&AudioSink, With<Audio>>, +) { + let new_volume: f32 = volume_audio.0 as f32; + for entity in &audio { + entity.set_volume(new_volume); + } } \ No newline at end of file