Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use bevy::app::{App, Plugin, PluginGroup, PluginGroupBuilder};
use bevy_kira_audio::{AudioApp, AudioPlugin};
use crate::channels::{
AmbianceAudioChannelA, AmbianceAudioChannelB, MusicAudioChannelA, MusicAudioChannelB,
SfxAudioChannel, UiSfxAudioChannel,
};
use crate::utilities::{AudioCrossFade, AudioSettings};
pub mod channels;
pub mod music_box;
pub mod utilities;
pub mod prelude {
pub use super::channels::*;
pub use super::music_box::MusicBox;
pub use bevy_kira_audio::{AudioSource, AudioChannel};
}
pub struct MusicBoxPlugin;
impl Plugin for MusicBoxPlugin {
fn build(&self, app: &mut App) {
app.add_audio_channel::<MusicAudioChannelA>()
.add_audio_channel::<MusicAudioChannelB>()
.add_audio_channel::<AmbianceAudioChannelA>()
.add_audio_channel::<AmbianceAudioChannelB>()
.add_audio_channel::<SfxAudioChannel>()
.add_audio_channel::<UiSfxAudioChannel>()
.insert_resource(AudioSettings::default())
.insert_resource(AudioCrossFade::default());
}
}
pub struct CombinedAudioPlugins;
impl PluginGroup for CombinedAudioPlugins {
fn build(&mut self, group: &mut PluginGroupBuilder) {
group.add(AudioPlugin)
.add(MusicBoxPlugin);
}
}