add "m" key for muting SFX

This commit is contained in:
yuni 2024-03-18 04:10:08 +01:00
parent 5d4ec3c77c
commit a541591b84
2 changed files with 10 additions and 11 deletions

View file

@ -61,7 +61,7 @@ pub fn setup(
source: SoundBGM(asset_server.load(ASSET_BGM)).0.clone(), source: SoundBGM(asset_server.load(ASSET_BGM)).0.clone(),
settings: PlaybackSettings { settings: PlaybackSettings {
mode: PlaybackMode::Loop, mode: PlaybackMode::Loop,
paused: settings.hud_active, paused: settings.hud_active || settings.mute_music,
..default() ..default()
}, },
}, },
@ -72,7 +72,7 @@ pub fn setup(
source: SoundBGM(asset_server.load(ASSET_RADIO)).0.clone(), source: SoundBGM(asset_server.load(ASSET_RADIO)).0.clone(),
settings: PlaybackSettings { settings: PlaybackSettings {
mode: PlaybackMode::Loop, mode: PlaybackMode::Loop,
paused: !settings.hud_active, paused: !settings.hud_active || settings.mute_music,
..default() ..default()
}, },
}, },
@ -111,6 +111,11 @@ pub fn toggle_bgm(
evwriter_click.send(AudioClickEvent()); evwriter_click.send(AudioClickEvent());
evwriter_toggle.send(ToggleMusicEvent()); evwriter_toggle.send(ToggleMusicEvent());
} }
if keyboard_input.just_pressed(KeyCode::KeyM) {
settings.mute_sfx ^= true;
evwriter_click.send(AudioClickEvent());
evwriter_toggle.send(ToggleMusicEvent());
}
} }
pub fn play_sfx( pub fn play_sfx(

View file

@ -2,7 +2,7 @@ use bevy::prelude::*;
use bevy::input::mouse::MouseMotion; use bevy::input::mouse::MouseMotion;
use bevy::window::PrimaryWindow; use bevy::window::PrimaryWindow;
use std::{f32::consts::*, fmt}; use std::{f32::consts::*, fmt};
use crate::audio; use crate::{settings, audio};
pub struct CameraControllerPlugin; pub struct CameraControllerPlugin;
@ -31,7 +31,6 @@ pub struct CameraController {
pub key_run: KeyCode, pub key_run: KeyCode,
pub key_stop: KeyCode, pub key_stop: KeyCode,
pub mouse_key_cursor_grab: MouseButton, pub mouse_key_cursor_grab: MouseButton,
pub keyboard_key_toggle_cursor_grab: KeyCode,
pub move_speed: f32, pub move_speed: f32,
pub friction: f32, pub friction: f32,
pub pitch: f32, pub pitch: f32,
@ -54,7 +53,6 @@ impl Default for CameraController {
key_run: KeyCode::KeyR, key_run: KeyCode::KeyR,
key_stop: KeyCode::Space, key_stop: KeyCode::Space,
mouse_key_cursor_grab: MouseButton::Left, mouse_key_cursor_grab: MouseButton::Left,
keyboard_key_toggle_cursor_grab: KeyCode::KeyM,
move_speed: 1.0, move_speed: 1.0,
friction: 0.1, friction: 0.1,
pitch: 1.0, // pitch=0/yaw=0 -> face sun pitch: 1.0, // pitch=0/yaw=0 -> face sun
@ -72,13 +70,11 @@ impl fmt::Display for CameraController {
Freecam Controls: Freecam Controls:
Mouse\t- Move camera orientation Mouse\t- Move camera orientation
{:?}\t- Hold to grab cursor {:?}\t- Hold to grab cursor
{:?}\t- Toggle cursor grab
{:?} & {:?}\t- Fly forward & backwards {:?} & {:?}\t- Fly forward & backwards
{:?} & {:?}\t- Fly sideways left & right {:?} & {:?}\t- Fly sideways left & right
{:?} & {:?}\t- Fly up & down {:?} & {:?}\t- Fly up & down
{:?}\t- Fly faster while held", {:?}\t- Fly faster while held",
self.mouse_key_cursor_grab, self.mouse_key_cursor_grab,
self.keyboard_key_toggle_cursor_grab,
self.key_forward, self.key_forward,
self.key_back, self.key_back,
self.key_left, self.key_left,
@ -93,6 +89,7 @@ Freecam Controls:
#[allow(clippy::too_many_arguments)] #[allow(clippy::too_many_arguments)]
fn run_camera_controller( fn run_camera_controller(
time: Res<Time>, time: Res<Time>,
settings: Res<settings::Settings>,
mut windows: Query<&mut Window, With<PrimaryWindow>>, mut windows: Query<&mut Window, With<PrimaryWindow>>,
mut mouse_events: EventReader<MouseMotion>, mut mouse_events: EventReader<MouseMotion>,
mouse_button_input: Res<ButtonInput<MouseButton>>, mouse_button_input: Res<ButtonInput<MouseButton>>,
@ -147,9 +144,6 @@ fn run_camera_controller(
} }
} }
if key_input.just_pressed(controller.keyboard_key_toggle_cursor_grab) {
*toggle_cursor_grab = !*toggle_cursor_grab;
}
if mouse_button_input.just_pressed(controller.mouse_key_cursor_grab) { if mouse_button_input.just_pressed(controller.mouse_key_cursor_grab) {
*mouse_cursor_grab = true; *mouse_cursor_grab = true;
} }
@ -168,7 +162,7 @@ fn run_camera_controller(
if axis_input != Vec3::ZERO { if axis_input != Vec3::ZERO {
let new_velocity = controller.velocity + axis_input.normalize() * controller.move_speed; let new_velocity = controller.velocity + axis_input.normalize() * controller.move_speed;
controller.velocity = new_velocity; controller.velocity = new_velocity;
play_thruster_sound = true; play_thruster_sound = !settings.mute_sfx;
} else { } else {
controller.velocity *= 1.0 - friction; controller.velocity *= 1.0 - friction;
if controller.velocity.length_squared() < 1e-6 { if controller.velocity.length_squared() < 1e-6 {