diff options
author | metamuffin <metamuffin@disroot.org> | 2024-08-15 01:35:46 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-08-15 01:35:46 +0200 |
commit | 9a17ee0e31c4ee4fbf75e5f1bc007a99bbe5ed4b (patch) | |
tree | 52660eecfcb318e274bbdddd5415467f0f0f07ad /pixel-client/src/main.rs | |
parent | bd4bb93e6da8d7f8dd3ad86ba1bea1fd8892a1a1 (diff) | |
download | hurrycurry-9a17ee0e31c4ee4fbf75e5f1bc007a99bbe5ed4b.tar hurrycurry-9a17ee0e31c4ee4fbf75e5f1bc007a99bbe5ed4b.tar.bz2 hurrycurry-9a17ee0e31c4ee4fbf75e5f1bc007a99bbe5ed4b.tar.zst |
pc: add username setting
Diffstat (limited to 'pixel-client/src/main.rs')
-rw-r--r-- | pixel-client/src/main.rs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/pixel-client/src/main.rs b/pixel-client/src/main.rs index 24421994..a073d0ed 100644 --- a/pixel-client/src/main.rs +++ b/pixel-client/src/main.rs @@ -16,7 +16,9 @@ */ #![feature(map_many_mut, path_add_extension)] +use anyhow::Result; use clap::{Parser, Subcommand}; +use config::Config; use game::Game; use hurrycurry_client_lib::network::sync::Network; use hurrycurry_protocol::glam::Vec2; @@ -57,10 +59,11 @@ pub enum State { Quit, } -fn main() { +fn main() -> Result<()> { env_logger::init_from_env("LOG"); let args = Args::parse(); + let mut config = Config::load()?; rustls::crypto::ring::default_provider() .install_default() @@ -93,6 +96,7 @@ fn main() { Action::Menu => State::MainMenu(MainMenu::new(renderer.atlas_layout())), Action::Join { server_address } => State::Ingame(Box::new(Game::new( Network::connect(&server_address).unwrap(), + &config, renderer.atlas_layout(), ))), }; @@ -108,24 +112,25 @@ fn main() { let keyboard = KeyboardState::new(&events); let mouse = MouseState::new(&events); - let dt = last_tick.elapsed().min(Duration::from_secs_f32(1. / 30.)); + let actual_dt = last_tick.elapsed(); + last_tick += actual_dt; + 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::MainMenu(x) => { x.tick(dt.as_secs_f32(), &keyboard, &mouse, renderer.atlas_layout()) } - State::Quit => break, + State::Quit => break Ok(()), }; if let Some(next) = next { state = *next; } - last_tick += dt; - renderer.set_ui_view(4.); match &mut state { State::Ingame(x) => x.draw(&mut renderer), - State::MainMenu(x) => x.draw(&mut renderer), + State::MainMenu(x) => x.draw(&mut renderer, &mut config), State::Quit => (), } @@ -137,7 +142,7 @@ fn main() { for event in events.poll_iter() { match event { - Event::Quit { .. } => break 'mainloop, + Event::Quit { .. } => break 'mainloop Ok(()), Event::KeyUp { keycode: Some(keycode), .. |