From a0ca524599951a19238cb46a78c4609d82c2560c Mon Sep 17 00:00:00 2001 From: Elijah Voigt Date: Wed, 15 Jul 2026 10:15:29 -0700 Subject: [PATCH] dial m for... mute/unmute --- life/src/main.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/life/src/main.rs b/life/src/main.rs index 5976035..f244aec 100644 --- a/life/src/main.rs +++ b/life/src/main.rs @@ -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>, 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>, + curr_state: Res>, +) { + // 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>, simulation_state: Res>,