From 03b20fa1bd1fa20bd7685799dde93aa7119f801e Mon Sep 17 00:00:00 2001 From: Imbris Date: Sun, 17 Mar 2019 01:26:51 -0400 Subject: [PATCH] connect chat box to network Former-commit-id: 581c724ee31564c7473120d5431ceb2182afb207 --- client/src/lib.rs | 3 +-- voxygen/src/hud/mod.rs | 4 ++++ voxygen/src/session.rs | 14 ++++++++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/client/src/lib.rs b/client/src/lib.rs index 2e3ff1cd3d..0e364d9701 100644 --- a/client/src/lib.rs +++ b/client/src/lib.rs @@ -138,11 +138,10 @@ impl Client { // Handle new messages from the server frontend_events.append(&mut self.handle_new_messages()?); - // Step 3 + // Step 1 if let Some(ecs_entity) = self.player { // TODO: remove this const PLAYER_VELOCITY: f32 = 100.0; - // TODO: Set acceleration instead self.state.write_component(ecs_entity, comp::phys::Vel(Vec3::from(input.move_dir * PLAYER_VELOCITY))); } diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index b0a6019b6e..02403ab3cf 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -1069,6 +1069,10 @@ impl Hud { events } + pub fn new_message(&mut self, msg: String) { + self.chat.new_message(msg); + } + pub fn toggle_menu(&mut self) { self.menu_open = !self.menu_open; } diff --git a/voxygen/src/session.rs b/voxygen/src/session.rs index f6738a011b..53320f9d0d 100644 --- a/voxygen/src/session.rs +++ b/voxygen/src/session.rs @@ -63,7 +63,14 @@ impl SessionState { let dir_vec = self.key_state.dir_vec(); let move_dir = unit_vecs.0 * dir_vec[0] + unit_vecs.1 * dir_vec[1]; - self.client.tick(client::Input { move_dir }, dt)?; + for event in self.client.tick(client::Input { move_dir }, dt)? { + match event { + client::Event::Chat(msg) => { + self.hud.new_message(msg); + } + } + } + Ok(()) } @@ -153,7 +160,10 @@ impl PlayState for SessionState { // Maintain the UI for event in self.hud.maintain(global_state.window.renderer_mut()) { match event { - HudEvent::SendMessage(message) => {} // TODO: Send msg here + HudEvent::SendMessage(msg) => { + // TODO: Handle result + self.client.send_chat(msg); + }, HudEvent::Logout => return PlayStateResult::Pop, HudEvent::Quit => return PlayStateResult::Shutdown, }