diff --git a/voxygen/src/main.rs b/voxygen/src/main.rs index 69759ec824..b2bdcf65aa 100644 --- a/voxygen/src/main.rs +++ b/voxygen/src/main.rs @@ -25,7 +25,7 @@ use pretty_env_logger; // Crate use crate::{ - menu::title::TitleState, + menu::main::MainMenuState, window::Window, }; @@ -78,7 +78,7 @@ fn main() { }; // Set up the initial play state - let mut states: Vec> = vec![Box::new(TitleState::new( + let mut states: Vec> = vec![Box::new(MainMenuState::new( &mut global_state.window, ))]; states.last().map(|current_state| { diff --git a/voxygen/src/menu/main/ui.rs b/voxygen/src/menu/main/ui.rs index 0dfce19b1c..62ec6b325a 100644 --- a/voxygen/src/menu/main/ui.rs +++ b/voxygen/src/menu/main/ui.rs @@ -52,6 +52,7 @@ struct Imgs { } impl Imgs { fn new(ui: &mut Ui, renderer: &mut Renderer) -> Imgs { + // TODO: update paths let mut load = |filename| { let image = image::open( &[ diff --git a/voxygen/src/menu/mod.rs b/voxygen/src/menu/mod.rs index ae053030f1..5e7dfc9cf6 100644 --- a/voxygen/src/menu/mod.rs +++ b/voxygen/src/menu/mod.rs @@ -1,3 +1,2 @@ pub mod char_selection; pub mod main; -pub mod title; diff --git a/voxygen/src/menu/title/mod.rs b/voxygen/src/menu/title/mod.rs deleted file mode 100644 index 0e8aa346bc..0000000000 --- a/voxygen/src/menu/title/mod.rs +++ /dev/null @@ -1,84 +0,0 @@ -mod ui; - -use super::main::MainMenuState; -use crate::{ - window::{Event, Window}, - GlobalState, PlayState, PlayStateResult, -}; -use common::clock::Clock; -use std::time::Duration; -use ui::TitleUi; -use vek::*; - -const FPS: u64 = 60; - -pub struct TitleState { - title_ui: TitleUi, -} - -impl TitleState { - /// Create a new `TitleState` - pub fn new(window: &mut Window) -> Self { - Self { - title_ui: TitleUi::new(window), - } - } -} - -// The background colour -const BG_COLOR: Rgba = Rgba { - r: 0.0, - g: 0.3, - b: 1.0, - a: 1.0, -}; - -impl PlayState for TitleState { - fn play(&mut self, global_state: &mut GlobalState) -> PlayStateResult { - // Set up an fps clock - let mut clock = Clock::new(); - - loop { - // Handle window events - for event in global_state.window.fetch_events() { - match event { - Event::Close => return PlayStateResult::Shutdown, - // When any key is pressed, go to the main menu - Event::Char(_) => { - return PlayStateResult::Push(Box::new(MainMenuState::new( - &mut global_state.window, - ))); - } - // Pass events to ui - Event::Ui(event) => { - self.title_ui.handle_event(event); - } - // Ignore all other events - _ => {} - } - } - - global_state.window.renderer_mut().clear(BG_COLOR); - - // Maintain the UI - self.title_ui.maintain(global_state.window.renderer_mut()); - - // Draw the UI to the screen - self.title_ui.render(global_state.window.renderer_mut()); - - // Finish the frame - global_state.window.renderer_mut().flush(); - global_state - .window - .swap_buffers() - .expect("Failed to swap window buffers"); - - // Wait for the next tick - clock.tick(Duration::from_millis(1000 / FPS)); - } - } - - fn name(&self) -> &'static str { - "Title" - } -} diff --git a/voxygen/src/menu/title/ui.rs b/voxygen/src/menu/title/ui.rs deleted file mode 100644 index fe369f6f12..0000000000 --- a/voxygen/src/menu/title/ui.rs +++ /dev/null @@ -1,51 +0,0 @@ -use crate::{render::Renderer, ui::{self, Ui}, window::Window}; -use conrod_core::{ - image::Id as ImgId, - widget::{Id as WidgId, Image as ImageWidget}, - Positionable, Widget, -}; - -pub struct TitleUi { - ui: Ui, - widget_id: WidgId, - title_img_id: ImgId, -} - -impl TitleUi { - pub fn new(window: &mut Window) -> Self { - let mut ui = Ui::new(window).unwrap(); - let widget_id = ui.id_generator().next(); - // TODO: use separate image for logo - let image = image::open(concat!( - env!("CARGO_MANIFEST_DIR"), - "/test_assets/ui/title/splash.png" - )) - .unwrap(); - let title_img_id = ui.new_image(window.renderer_mut(), &image).unwrap(); - Self { - ui, - widget_id, - title_img_id, - } - } - - fn ui_layout(&mut self) { - let mut ui_cell = self.ui.set_widgets(); - ImageWidget::new(self.title_img_id) - .top_left() - .set(self.widget_id, &mut ui_cell); - } - - pub fn handle_event(&mut self, event: ui::Event) { - self.ui.handle_event(event); - } - - pub fn maintain(&mut self, renderer: &mut Renderer) { - self.ui_layout(); - self.ui.maintain(renderer); - } - - pub fn render(&self, renderer: &mut Renderer) { - self.ui.render(renderer); - } -}