INNER CODE UNIT · Rust
queue_managed_audio_system
CleanCut/rusty_engine · src/audio.rs:247
pub fn queue_managed_audio_system(
mut commands: Commands,
music_query: Query<(Entity, &AudioSink), With<Music>>,
asset_server: Res<AssetServer>,
mut game_state: ResMut<Engine>,
) {
for (sfx, volume) in game_state.audio_manager.sfx_queue.drain(..) {
commands.spawn((
AudioPlayer::<AudioSource>(asset_server.load(format!("audio/{}", sfx))),
PlaybackSettings {
mode: PlaybackMode::Despawn,
volume: Volume::Linear(volume),
..Default::default()
},
));
}
let last_music_item = game_state.audio_manager.music_queue.pop();
game_state.audio_manager.music_queue.clear();