summaryrefslogtreecommitdiff
path: root/server/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/main.rs')
-rw-r--r--server/src/main.rs15
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}");