From ae6ca47c264a4fc3b15e99b1424e11472923d4be Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 16 Sep 2024 19:20:46 +0200 Subject: pc: ingame menu --- pixel-client/src/main.rs | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'pixel-client/src/main.rs') diff --git a/pixel-client/src/main.rs b/pixel-client/src/main.rs index 8b0887e5..c43680ae 100644 --- a/pixel-client/src/main.rs +++ b/pixel-client/src/main.rs @@ -22,7 +22,7 @@ use config::Config; use game::Game; use hurrycurry_client_lib::network::sync::Network; use hurrycurry_protocol::glam::Vec2; -use menu::main::MainMenu; +use menu::{ingame::IngameMenu, main::MainMenu}; use profiler::ProfilerOverlay; use render::Renderer; use sdl2::{event::Event, keyboard::KeyboardState, mouse::MouseState, pixels::Color}; @@ -54,7 +54,7 @@ pub enum Action { } pub enum State { - Ingame(Box), + Ingame(IngameMenu), MainMenu(MainMenu), Quit, } @@ -94,7 +94,7 @@ fn main() -> Result<()> { let mut state = match args.action.unwrap_or_default() { Action::Menu => State::MainMenu(MainMenu::new(renderer.atlas_layout())), - Action::Join { server_address } => State::Ingame(Box::new(Game::new( + Action::Join { server_address } => State::Ingame(IngameMenu::new(Game::new( Network::connect(&server_address)?, &config, renderer.atlas_layout(), @@ -121,7 +121,9 @@ fn main() -> Result<()> { let dt = actual_dt.min(Duration::from_secs_f32(1. / 30.)); let next = match &mut state { - State::Ingame(x) => x.tick(dt.as_secs_f32(), &keyboard, renderer.atlas_layout()), + State::Ingame(x) => { + x.tick(dt.as_secs_f32(), &keyboard, &mouse, renderer.atlas_layout()) + } State::MainMenu(x) => { x.tick(dt.as_secs_f32(), &keyboard, &mouse, renderer.atlas_layout()) } @@ -133,7 +135,7 @@ fn main() -> Result<()> { renderer.set_ui_view(4.); match &mut state { - State::Ingame(x) => x.draw(&mut renderer), + State::Ingame(x) => x.draw(&mut renderer, &mut config), State::MainMenu(x) => x.draw(&mut renderer, &mut config), State::Quit => (), } @@ -151,19 +153,23 @@ fn main() -> Result<()> { keycode: Some(keycode), .. } => match &mut state { - State::Ingame(_) => (), - State::MainMenu(menu) => menu.keyboard_event(keycode, false), + State::Ingame(g) => g.keyboard_event(keycode, false), + State::MainMenu(g) => g.keyboard_event(keycode, false), _ => (), }, Event::KeyDown { keycode: Some(keycode), .. } => match &mut state { - State::Ingame(_) => (), - State::MainMenu(menu) => menu.keyboard_event(keycode, true), + State::Ingame(g) => g.keyboard_event(keycode, true), + State::MainMenu(g) => g.keyboard_event(keycode, true), + _ => (), + }, + Event::TextInput { text, .. } => match &mut state { + State::Ingame(g) => g.ui_state.text_input(text), + State::MainMenu(g) => g.ui_state.text_input(text), _ => (), }, - Event::TextInput { text, .. } => if let State::MainMenu(menu) = &mut state { menu.ui_state.text_input(text) }, _ => {} } } -- cgit v1.2.3-70-g09d2