|
|
|
|
@ -65,6 +65,7 @@ fn main() {
|
|
|
|
|
// Run if any component added/removed: AudioSink
|
|
|
|
|
// Run if state changed: AudioPlayback
|
|
|
|
|
control_volume,
|
|
|
|
|
toggle_audio_state.run_if(input_just_pressed(KeyCode::KeyM)),
|
|
|
|
|
de_spawn_cells
|
|
|
|
|
.run_if(not(is_ui_hovered))
|
|
|
|
|
.run_if(not(is_panning))
|
|
|
|
|
@ -981,6 +982,21 @@ fn load_audio_tones(mut pitches: ResMut<Assets<Pitch>>, mut cell_assets: ResMut<
|
|
|
|
|
debug_assert_eq!(cell_assets.pitches.iter().len(), 132);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// When volume is toggled on/off make the following updates:
|
|
|
|
|
// * AudioPlayback state is flipped
|
|
|
|
|
fn toggle_audio_state(
|
|
|
|
|
mut next_state: ResMut<NextState<AudioPlayback>>,
|
|
|
|
|
curr_state: Res<State<AudioPlayback>>,
|
|
|
|
|
) {
|
|
|
|
|
// Set next audio playback state
|
|
|
|
|
next_state.set(
|
|
|
|
|
match curr_state.get() {
|
|
|
|
|
AudioPlayback::Play => AudioPlayback::Mute,
|
|
|
|
|
AudioPlayback::Mute => AudioPlayback::Play,
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn control_volume(
|
|
|
|
|
audio_state: Res<State<AudioPlayback>>,
|
|
|
|
|
simulation_state: Res<State<SimulationPlayback>>,
|
|
|
|
|
|