diff --git a/assets/sfx/effects/gate.ogg b/assets/sfx/effects/gate.ogg new file mode 100644 index 0000000..ea04540 Binary files /dev/null and b/assets/sfx/effects/gate.ogg differ diff --git a/assets/sfx/effects/key_collect.ogg b/assets/sfx/effects/key_collect.ogg new file mode 100644 index 0000000..0eae577 Binary files /dev/null and b/assets/sfx/effects/key_collect.ogg differ diff --git a/src/gates.rs b/src/gates.rs index 3c72f48..0c9a42c 100644 --- a/src/gates.rs +++ b/src/gates.rs @@ -17,14 +17,27 @@ pub fn plugin(app: &mut App) { } fn update( + mut commands: Commands, keyboard: Res>, mut state: ResMut, mut names_entities: Query<(&NamedEntity, &mut Transform)>, + asset_server: Res, ) { if keyboard.just_pressed(KeyCode::Digit1) { if matches!(*state, GatesState::Init) { *state = GatesState::GateOpen1; + //TODO: put into a sound effects system + commands.spawn(( + AudioPlayer::new(asset_server.load("sfx/effects/gate.ogg")), + PlaybackSettings::DESPAWN, + )); + //TODO: put into actual key collect once we have that + commands.spawn(( + AudioPlayer::new(asset_server.load("sfx/effects/key_collect.ogg")), + PlaybackSettings::DESPAWN, + )); + let fences: HashMap<_, _> = vec![ ("fence_01", Quat::from_rotation_y(PI / -2.)), ("fence_02", Quat::from_rotation_y(PI / 2.)), diff --git a/src/main.rs b/src/main.rs index e8bb645..1ffd29a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,6 +9,8 @@ mod tb_entities; use avian3d::PhysicsPlugins; use avian3d::prelude::*; +use bevy::audio::PlaybackMode; +use bevy::audio::Volume; use bevy::core_pipeline::tonemapping::Tonemapping; use bevy::prelude::*; use bevy::render::view::ColorGrading; @@ -133,7 +135,14 @@ fn spawn_box( } fn music(asset_server: Res, mut commands: Commands) { - commands.spawn(AudioPlayer::new(asset_server.load("sfx/music/02.ogg"))); + commands.spawn(( + AudioPlayer::new(asset_server.load("sfx/music/02.ogg")), + PlaybackSettings { + mode: PlaybackMode::Loop, + volume: Volume::new(0.2), + ..default() + }, + )); } fn write_trenchbroom_config(server: Res) {