Skip to content

Commit 4b89fc3

Browse files
authored
Play laser fire sound even for remote players (#771)
Fixes #770.
1 parent c5a5d96 commit 4b89fc3

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

crates/combat/src/laser.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use bevy::prelude::*;
2-
use de_audio::spatial::{PlaySpatialAudioEvent, Sound};
32
use de_core::gamestate::GameState;
43
use parry3d::query::Ray;
54

@@ -81,7 +80,6 @@ fn fire(
8180
sightline: LineOfSight,
8281
mut health: EventWriter<LocalUpdateHealthEvent>,
8382
mut trail: EventWriter<LocalLaserTrailEvent>,
84-
mut start_sound: EventWriter<PlaySpatialAudioEvent>,
8583
) {
8684
for fire in fires.iter() {
8785
let observation = sightline.sight(fire.ray(), fire.max_toi(), fire.attacker());
@@ -94,10 +92,5 @@ fn fire(
9492
if let Some(entity) = observation.entity() {
9593
health.send(LocalUpdateHealthEvent::new(entity, -fire.damage()));
9694
}
97-
98-
start_sound.send(PlaySpatialAudioEvent::new(
99-
Sound::LaserFire,
100-
fire.ray().origin.into(),
101-
));
10295
}
10396
}

crates/combat/src/trail.rs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use bevy::{
1111
},
1212
},
1313
};
14+
use de_audio::spatial::{PlaySpatialAudioEvent, Sound};
1415
use de_core::{
1516
cleanup::DespawnOnGameExit, gamestate::GameState, gconfig::GameConfig, state::AppState,
1617
};
@@ -35,16 +36,22 @@ impl Plugin for TrailPlugin {
3536
(
3637
local_laser_trail
3738
.before(MessagesSet::SendMessages)
38-
.before(laser_trail),
39-
remote_laser_trail.before(laser_trail),
40-
laser_trail,
39+
.before(TrailSet::Trail),
40+
remote_laser_trail.before(TrailSet::Trail),
41+
laser_trail.in_set(TrailSet::Trail),
42+
laser_sound.in_set(TrailSet::Trail),
4143
update,
4244
)
4345
.run_if(in_state(GameState::Playing)),
4446
);
4547
}
4648
}
4749

50+
#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)]
51+
enum TrailSet {
52+
Trail,
53+
}
54+
4855
#[derive(Event)]
4956
pub(crate) struct LocalLaserTrailEvent(Ray);
5057

@@ -178,6 +185,18 @@ fn laser_trail(
178185
}
179186
}
180187

188+
fn laser_sound(
189+
mut events: EventReader<LaserTrailEvent>,
190+
mut sound_events: EventWriter<PlaySpatialAudioEvent>,
191+
) {
192+
for event in events.iter() {
193+
sound_events.send(PlaySpatialAudioEvent::new(
194+
Sound::LaserFire,
195+
event.0.origin.into(),
196+
));
197+
}
198+
}
199+
181200
fn update(mut commands: Commands, time: Res<Time>, mut query: Query<(Entity, &mut Trail)>) {
182201
for (entity, mut trail) in query.iter_mut() {
183202
trail.tick(time.delta());

0 commit comments

Comments
 (0)