diff --git a/voxygen/src/menu/char_selection/mod.rs b/voxygen/src/menu/char_selection/mod.rs index 1537833c1b..fb003be4fa 100644 --- a/voxygen/src/menu/char_selection/mod.rs +++ b/voxygen/src/menu/char_selection/mod.rs @@ -55,10 +55,7 @@ impl PlayState for CharSelectionState { global_state.window.renderer_mut().clear(); // Maintain the UI. - for event in self - .char_selection_ui - .maintain(global_state.window.renderer_mut()) - { + for event in self.char_selection_ui.maintain(global_state) { match event { ui::Event::Logout => { return PlayStateResult::Pop; diff --git a/voxygen/src/menu/char_selection/ui.rs b/voxygen/src/menu/char_selection/ui.rs index b3ed0de920..5fe9286ccd 100644 --- a/voxygen/src/menu/char_selection/ui.rs +++ b/voxygen/src/menu/char_selection/ui.rs @@ -6,6 +6,7 @@ use crate::{ ImageSlider, ScaleMode, Ui, }, window::Window, + GlobalState, }; use common::comp::{humanoid, item::Weapon}; use conrod_core::{ @@ -235,7 +236,7 @@ impl CharSelectionUi { } // TODO: Split this into multiple modules or functions. - fn update_layout(&mut self) -> Vec { + fn update_layout(&mut self, global_state: &GlobalState) -> Vec { let mut events = Vec::new(); let ref mut ui_widgets = self.ui.set_widgets(); let version = env!("CARGO_PKG_VERSION"); @@ -270,7 +271,8 @@ impl CharSelectionUi { .rgba(0.0, 0.0, 0., 0.0) .set(self.ids.selection_scrollbar, ui_widgets); // Server Name - Text::new("Server Name") //TODO: Add in Server Name + let network = &global_state.settings.networking; + Text::new(&network.current_server) .mid_top_with_margin_on(self.ids.server_frame_bg, 5.0) .font_size(24) .font_id(self.fonts.metamorph) @@ -1064,9 +1066,9 @@ impl CharSelectionUi { self.ui.handle_event(event); } - pub fn maintain(&mut self, renderer: &mut Renderer) -> Vec { - let events = self.update_layout(); - self.ui.maintain(renderer, None); + pub fn maintain(&mut self, global_state: &mut GlobalState) -> Vec { + let events = self.update_layout(global_state); + self.ui.maintain(global_state.window.renderer_mut(), None); events } diff --git a/voxygen/src/menu/main/mod.rs b/voxygen/src/menu/main/mod.rs index b46b076e69..665a8c0245 100644 --- a/voxygen/src/menu/main/mod.rs +++ b/voxygen/src/menu/main/mod.rs @@ -85,6 +85,7 @@ impl PlayState for MainMenuState { } => { let mut net_settings = &mut global_state.settings.networking; net_settings.username = username.clone(); + net_settings.current_server = server_address.clone(); if !net_settings.servers.contains(&server_address) { net_settings.servers.push(server_address.clone()); } diff --git a/voxygen/src/settings.rs b/voxygen/src/settings.rs index 3b5e5fdd85..d40d92b89c 100644 --- a/voxygen/src/settings.rs +++ b/voxygen/src/settings.rs @@ -95,6 +95,7 @@ pub struct NetworkingSettings { pub username: String, pub servers: Vec, pub default_server: usize, + pub current_server: String, } impl Default for NetworkingSettings { @@ -103,6 +104,7 @@ impl Default for NetworkingSettings { username: "Username".to_string(), servers: vec!["server.veloren.net".to_string()], default_server: 0, + current_server: "".to_string(), } } }