From 092720346eab0de5e0c30aa21003ecc424519a95 Mon Sep 17 00:00:00 2001 From: socksonme Date: Fri, 15 Oct 2021 22:49:25 +0300 Subject: [PATCH 1/3] Refactored SoundKind and UtteranceKind --- common/src/comp/agent.rs | 2 -- common/src/comp/controller.rs | 1 + server/src/sys/agent.rs | 12 +++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index 0f21db8320..556537ed63 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -327,8 +327,6 @@ pub enum SoundKind { Beam, Shockwave, Utterance(UtteranceKind, Body), - // TODO: unify VillagerAlarm with Utterance - VillagerAlarm, } #[derive(Clone, Copy, Debug)] diff --git a/common/src/comp/controller.rs b/common/src/comp/controller.rs index 93f81a49cd..a3b9ca9076 100644 --- a/common/src/comp/controller.rs +++ b/common/src/comp/controller.rs @@ -104,6 +104,7 @@ pub enum UtteranceKind { Surprised, Hurt, Greeting, + Scream, /* Death, * TODO: Wait for more post-death features (i.e. animiations) before implementing death * sounds */ diff --git a/server/src/sys/agent.rs b/server/src/sys/agent.rs index 331e86e4c1..56c43c7a79 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -716,7 +716,7 @@ impl<'a> AgentData<'a> { // Should the agent flee? if agent.action_state.timer == 0.0 && can_speak(agent) { self.chat_general("npc.speech.villager_under_attack", event_emitter); - self.emit_villager_alarm(read_data.time.0, event_emitter); + self.emit_alarm(read_data.time.0, event_emitter); agent.action_state.timer = 0.01; } else if agent.action_state.timer < FLEE_DURATION || dist_sq < MAX_FLEE_DIST.powi(2) @@ -4355,10 +4355,12 @@ impl<'a> AgentData<'a> { ))); } - fn emit_villager_alarm(&self, time: f64, event_emitter: &mut Emitter<'_, ServerEvent>) { - event_emitter.emit(ServerEvent::Sound { - sound: Sound::new(SoundKind::VillagerAlarm, self.pos.0, 100.0, time), - }); + fn emit_alarm(&self, time: f64, event_emitter: &mut Emitter<'_, ServerEvent>) { + if let Some(body) = self.body { + event_emitter.emit(ServerEvent::Sound { + sound: Sound::new(SoundKind::Utterance(UtteranceKind::Scream, *body), self.pos.0, 100.0, time), + }); + } } } From ea11cb388ea898f7451d22f243c7155357653e09 Mon Sep 17 00:00:00 2001 From: socksonme Date: Fri, 15 Oct 2021 23:23:45 +0300 Subject: [PATCH 2/3] small code quality change --- server/src/sys/agent.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/src/sys/agent.rs b/server/src/sys/agent.rs index 56c43c7a79..4c8038f743 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -4358,7 +4358,12 @@ impl<'a> AgentData<'a> { fn emit_alarm(&self, time: f64, event_emitter: &mut Emitter<'_, ServerEvent>) { if let Some(body) = self.body { event_emitter.emit(ServerEvent::Sound { - sound: Sound::new(SoundKind::Utterance(UtteranceKind::Scream, *body), self.pos.0, 100.0, time), + sound: Sound::new( + SoundKind::Utterance(UtteranceKind::Scream, *body), + self.pos.0, + 100.0, + time, + ), }); } } From c8576d35d485be7001c4cba0de63836e2f5ae7a8 Mon Sep 17 00:00:00 2001 From: socksonme Date: Sat, 16 Oct 2021 19:11:57 +0300 Subject: [PATCH 3/3] Renamed emit_alarm to emit_scream --- server/src/sys/agent.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/src/sys/agent.rs b/server/src/sys/agent.rs index 4c8038f743..0703d826b8 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -716,7 +716,7 @@ impl<'a> AgentData<'a> { // Should the agent flee? if agent.action_state.timer == 0.0 && can_speak(agent) { self.chat_general("npc.speech.villager_under_attack", event_emitter); - self.emit_alarm(read_data.time.0, event_emitter); + self.emit_scream(read_data.time.0, event_emitter); agent.action_state.timer = 0.01; } else if agent.action_state.timer < FLEE_DURATION || dist_sq < MAX_FLEE_DIST.powi(2) @@ -4355,7 +4355,7 @@ impl<'a> AgentData<'a> { ))); } - fn emit_alarm(&self, time: f64, event_emitter: &mut Emitter<'_, ServerEvent>) { + fn emit_scream(&self, time: f64, event_emitter: &mut Emitter<'_, ServerEvent>) { if let Some(body) = self.body { event_emitter.emit(ServerEvent::Sound { sound: Sound::new(