use std::collections::VecDeque;
use crate::prelude::*;
#[derive(Copy, Clone, TypeUlid, Debug)]
#[ulid = "01GP2E03WS03EE9H65E90GZW2D"]
pub struct AudioSource;
#[derive(Default, TypeUlid, Clone, Debug)]
#[ulid = "01GP7HESF20YKNKVNVCYDJS9DR"]
pub struct AudioEvents {
pub queue: VecDeque<AudioEvent>,
}
impl AudioEvents {
pub fn send(&mut self, event: AudioEvent) {
self.queue.push_back(event);
}
pub fn play(&mut self, sound_source: Handle<AudioSource>, volume: f64) {
self.queue.push_back(AudioEvent::PlaySound {
sound_source,
volume,
})
}
}
#[derive(Clone, Debug)]
pub enum AudioEvent {
PlaySound {
sound_source: Handle<AudioSource>,
volume: f64,
},
}