diff options
Diffstat (limited to 'server/src/main.rs')
-rw-r--r-- | server/src/main.rs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/server/src/main.rs b/server/src/main.rs index 40ea3433..797e21f9 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -19,7 +19,11 @@ use anyhow::{anyhow, Result}; use clap::Parser; use futures_util::{SinkExt, StreamExt}; use hurrycurry_protocol::{PacketC, PacketS, BINCODE_CONFIG, VERSION}; -use hurrycurry_server::{data::DATA_DIR, server::GameServerExt, state::State, ConnectionID}; +use hurrycurry_server::{ + data::DATA_DIR, + server::{GameServerExt, Server}, + ConnectionID, +}; use log::{debug, info, trace, warn, LevelFilter}; use std::{ net::SocketAddr, @@ -100,7 +104,10 @@ async fn run(addr: SocketAddr) -> anyhow::Result<()> { let (tx, rx) = broadcast::channel::<PacketC>(128 * 1024); - let state = Arc::new(RwLock::new(State::new(tx).await?)); + let mut state = Server::new(tx).await?; + state.load(state.index.generate("lobby").await?, None); + let state = Arc::new(RwLock::new(state)); + { let state = state.clone(); spawn(async move { @@ -108,7 +115,7 @@ async fn run(addr: SocketAddr) -> anyhow::Result<()> { let mut tick = interval(Duration::from_secs_f32(dt)); loop { tick.tick().await; - if let Err(e) = state.write().await.tick(dt).await { + if let Err(e) = state.write().await.tick_outer(dt).await { warn!("tick failed: {e}"); } } @@ -216,7 +223,7 @@ async fn run(addr: SocketAddr) -> anyhow::Result<()> { } else { debug!("<- {id:?} {packet:?}"); } - let packet_out = match state.write().await.packet_in(id, packet).await { + let packet_out = match state.write().await.packet_in_outer(id, packet).await { Ok(packets) => packets, Err(e) => { warn!("client error: {e}"); |