use std::{fmt::Debug, hash::Hash}; use bevy::{app::PluginGroupBuilder, prelude::*}; pub mod footstep; pub mod icon; pub mod volumetric; pub use footstep::Footstep; pub use icon::{SoundIcon, SoundIconPlugin}; pub use volumetric::Volumetric; /*fn scale_sounds(config: Res, mut sounds: Query<&mut Sound>) { let pixels_per_unit = config.pixels_per_unit as f32; for mut sound in sounds.iter_mut() { sound.reference_distance *= pixels_per_unit; if sound.max_distance != f32::MAX { sound.max_distance *= pixels_per_unit; } } }*/ pub struct SoundPlugins<'a, S>(std::marker::PhantomData<&'a S>); impl<'a, S> Default for SoundPlugins<'a, S> { fn default() -> Self { Self(std::marker::PhantomData) } } impl PluginGroup for SoundPlugins<'static, S> where S: 'static + Clone + Debug + Eq + Hash + Send + Sync, { fn build(self) -> PluginGroupBuilder { PluginGroupBuilder::start::() .add(footstep::FootstepPlugin) .add(icon::SoundIconPlugin::::default()) .add(volumetric::VolumetricPlugin) // .add_system(scale_sounds); } }