From c65967ccdbf991cc15410047f5c788ce59bd03f1 Mon Sep 17 00:00:00 2001 From: CapsizeGlimmer <> Date: Sun, 24 May 2020 18:18:41 -0400 Subject: [PATCH] Chatting now creates speech bubbles --- common/src/comp/agent.rs | 18 +++- common/src/comp/mod.rs | 2 +- common/src/msg/ecs_packet.rs | 7 ++ common/src/state.rs | 1 + server/src/lib.rs | 1 + server/src/sys/message.rs | 31 ++++--- server/src/sys/mod.rs | 4 + server/src/sys/sentinel.rs | 17 +++- server/src/sys/speech_bubble.rs | 30 ++++++ voxygen/src/hud/mod.rs | 12 ++- voxygen/src/hud/overhead.rs | 158 ++++++++++++++++---------------- 11 files changed, 184 insertions(+), 97 deletions(-) create mode 100644 server/src/sys/speech_bubble.rs diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index be33b4bb49..a98c38e2f8 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -1,5 +1,5 @@ -use crate::path::Chaser; -use specs::{Component, Entity as EcsEntity}; +use crate::{path::Chaser, state::Time}; +use specs::{Component, Entity as EcsEntity, FlaggedStorage, HashMapStorage}; use specs_idvs::IDVStorage; use vek::*; @@ -85,3 +85,17 @@ impl Activity { impl Default for Activity { fn default() -> Self { Activity::Idle(Vec2::zero()) } } + +/// Default duration in seconds of chat bubbles +pub const SPEECH_BUBBLE_DURATION: f64 = 5.0; + +/// Adds a speech bubble to the entity +#[derive(Clone, Default, Debug, Serialize, Deserialize)] +pub struct SpeechBubble { + pub message: String, + pub timeout: Option