add JupiterRecording.ogg, toggle BGM with TAB
This commit is contained in:
parent
8d4ad64330
commit
2a6e14aa90
|
@ -41,7 +41,11 @@
|
|||
- https://pixabay.com/sound-effects/whoosh-blow-flutter-shortwav-14678/
|
||||
- https://pixabay.com/sound-effects/dslr-camera-sounds-26117/
|
||||
- https://pixabay.com/sound-effects/beep-6-96243
|
||||
- Music: [Cinematic Cello](https://pixabay.com/music/build-up-scenes-cinematic-cello-115667) by [Aleksey Chistilin](https://pixabay.com/users/lexin_music-28841948/), [Pixabay Content License](https://pixabay.com/service/license-summary)
|
||||
- Music:
|
||||
- JupiterRecording.ogg is an [actual Jupiter recording by NASA](https://archive.org/download/voyager-1-and-2-1990-jupiter-nasa-voyager-space-sounds-electronic), public domain.
|
||||
- Processed by cutting out min 1:47-3:47 and applying a 10s linear crossfade at the end. Exported as ogg with quality=3, see [.kdenlive file](src/audio/JupiterRecording.kdenlive).
|
||||
- The source file has been taken down, and generally, I can't find information on how exactly this was produced. Hoping it's not a hoax.
|
||||
- [Cinematic Cello](https://pixabay.com/music/build-up-scenes-cinematic-cello-115667) by [Aleksey Chistilin](https://pixabay.com/users/lexin_music-28841948/), [Pixabay Content License](https://pixabay.com/service/license-summary)
|
||||
- Star chart based on the [HYG Stellar database](https://github.com/astronexus/HYG-Database)
|
||||
- Font Yupiter-Regular.ttf is placed under the SIL OPEN FONT LICENSE Version 1.1 and is based on:
|
||||
- Noto Sans Symbols 2, Copyright 2022 The Noto Project Authors (https://github.com/notofonts/symbols)
|
||||
|
|
BIN
assets/music/JupiterRecording.ogg
Normal file
BIN
assets/music/JupiterRecording.ogg
Normal file
Binary file not shown.
64
src/audio.rs
64
src/audio.rs
|
@ -21,12 +21,19 @@ impl Plugin for AudioPlugin {
|
|||
app.add_systems(Startup, setup);
|
||||
app.add_systems(
|
||||
Update,
|
||||
respawn_sinks.run_if(on_event::<RespawnSinksEvent>()),
|
||||
(
|
||||
play_zoom_sfx,
|
||||
respawn_sinks.run_if(on_event::<RespawnSinksEvent>()),
|
||||
pause_all.run_if(on_event::<PauseAllSfxEvent>()),
|
||||
),
|
||||
);
|
||||
app.add_systems(
|
||||
PostUpdate,
|
||||
(
|
||||
play_sfx,
|
||||
toggle_music.run_if(on_event::<ToggleMusicEvent>()),
|
||||
),
|
||||
);
|
||||
app.add_systems(Update, play_zoom_sfx);
|
||||
app.add_systems(Update, pause_all.run_if(on_event::<PauseAllSfxEvent>()));
|
||||
app.add_systems(PostUpdate, play_sfx);
|
||||
app.add_systems(PostUpdate, update_music);
|
||||
app.add_event::<PlaySfxEvent>();
|
||||
app.add_event::<PauseAllSfxEvent>();
|
||||
app.add_event::<ToggleMusicEvent>();
|
||||
|
@ -44,6 +51,11 @@ const PATHS: &[(SfxType, Sfx, &str)] = &[
|
|||
Sfx::BGM,
|
||||
"music/Aleksey Chistilin - Cinematic Cello.ogg",
|
||||
),
|
||||
(
|
||||
SfxType::BGMNoAR,
|
||||
Sfx::BGMActualJupiterRecording,
|
||||
"music/JupiterRecording.ogg",
|
||||
),
|
||||
(
|
||||
SfxType::LoopSfx,
|
||||
Sfx::ElectricMotor,
|
||||
|
@ -81,6 +93,7 @@ const PATHS: &[(SfxType, Sfx, &str)] = &[
|
|||
pub enum Sfx {
|
||||
Achieve,
|
||||
BGM,
|
||||
BGMActualJupiterRecording,
|
||||
Click,
|
||||
Connect,
|
||||
Crash,
|
||||
|
@ -115,6 +128,7 @@ pub fn str2sfx(sfx_label: &str) -> Sfx {
|
|||
|
||||
pub enum SfxType {
|
||||
BGM,
|
||||
BGMNoAR,
|
||||
LoopSfx,
|
||||
OneOff,
|
||||
}
|
||||
|
@ -163,7 +177,20 @@ pub fn respawn_sinks(
|
|||
source,
|
||||
settings: PlaybackSettings {
|
||||
mode: PlaybackMode::Loop,
|
||||
paused: settings.mute_music,
|
||||
paused: settings.mute_music || !settings.hud_active,
|
||||
..default()
|
||||
},
|
||||
},
|
||||
));
|
||||
}
|
||||
SfxType::BGMNoAR => {
|
||||
commands.spawn((
|
||||
*sfx,
|
||||
AudioBundle {
|
||||
source,
|
||||
settings: PlaybackSettings {
|
||||
mode: PlaybackMode::Loop,
|
||||
paused: settings.mute_music || settings.hud_active,
|
||||
..default()
|
||||
},
|
||||
},
|
||||
|
@ -207,22 +234,19 @@ pub fn play_sfx(
|
|||
}
|
||||
}
|
||||
|
||||
pub fn update_music(
|
||||
mut events: EventReader<ToggleMusicEvent>,
|
||||
q_audiosinks: Query<(&AudioSink, &Sfx)>,
|
||||
settings: Res<var::Settings>,
|
||||
) {
|
||||
if !events.is_empty() {
|
||||
events.clear();
|
||||
for (bgm_sink, sfx) in &q_audiosinks {
|
||||
if *sfx != Sfx::BGM {
|
||||
pub fn toggle_music(q_audiosinks: Query<(&AudioSink, &Sfx)>, settings: Res<var::Settings>) {
|
||||
for (bgm_sink, sfx) in &q_audiosinks {
|
||||
let play = match *sfx {
|
||||
Sfx::BGM => settings.hud_active,
|
||||
Sfx::BGMActualJupiterRecording => !settings.hud_active,
|
||||
_ => {
|
||||
continue;
|
||||
}
|
||||
if settings.mute_music {
|
||||
bgm_sink.pause();
|
||||
} else {
|
||||
bgm_sink.play();
|
||||
}
|
||||
};
|
||||
if settings.mute_music || !play {
|
||||
bgm_sink.pause();
|
||||
} else {
|
||||
bgm_sink.play();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue