2023-02-11 17:37:24 -06:00
|
|
|
use shipyard::{World, Workload, IntoWorkload};
|
|
|
|
use std::{thread, time::Duration};
|
2023-02-10 15:11:18 -06:00
|
|
|
|
2023-03-08 20:30:37 -06:00
|
|
|
mod config;
|
|
|
|
mod server;
|
|
|
|
mod client;
|
|
|
|
mod world;
|
|
|
|
mod auth;
|
2023-02-10 13:26:03 -06:00
|
|
|
|
2023-02-11 17:37:24 -06:00
|
|
|
use config::read_config;
|
2023-03-08 13:26:51 -06:00
|
|
|
use server::{bind_server, update_server, log_server_errors};
|
2023-03-08 20:30:37 -06:00
|
|
|
use client::init_client_maps;
|
2023-02-13 21:27:27 -06:00
|
|
|
use auth::authenticate_players;
|
2023-03-08 20:30:37 -06:00
|
|
|
use world::{update_world, init_world};
|
2023-02-10 13:36:58 -06:00
|
|
|
|
|
|
|
fn initialize() -> Workload {
|
|
|
|
(
|
2023-02-11 17:37:24 -06:00
|
|
|
read_config,
|
2023-02-10 13:36:58 -06:00
|
|
|
bind_server,
|
2023-03-08 20:30:37 -06:00
|
|
|
init_client_maps,
|
|
|
|
init_world,
|
2023-02-10 13:36:58 -06:00
|
|
|
).into_workload()
|
|
|
|
}
|
|
|
|
|
|
|
|
fn update() -> Workload {
|
|
|
|
(
|
|
|
|
update_server,
|
2023-03-08 13:26:51 -06:00
|
|
|
(
|
|
|
|
log_server_errors,
|
|
|
|
authenticate_players,
|
2023-03-08 20:30:37 -06:00
|
|
|
update_world,
|
2023-03-08 13:26:51 -06:00
|
|
|
).into_workload()
|
|
|
|
).into_sequential_workload()
|
2023-02-10 13:36:58 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
2023-02-10 13:44:34 -06:00
|
|
|
kubi_logging::init();
|
2023-02-10 13:36:58 -06:00
|
|
|
let world = World::new();
|
|
|
|
world.add_workload(initialize);
|
|
|
|
world.add_workload(update);
|
|
|
|
world.run_workload(initialize).unwrap();
|
2023-02-10 15:11:18 -06:00
|
|
|
log::info!("The server is now running");
|
2023-02-10 13:26:03 -06:00
|
|
|
loop {
|
2023-02-10 13:36:58 -06:00
|
|
|
world.run_workload(update).unwrap();
|
2023-02-10 15:05:10 -06:00
|
|
|
thread::sleep(Duration::from_millis(16));
|
2023-02-10 13:26:03 -06:00
|
|
|
}
|
2023-01-29 18:46:22 -06:00
|
|
|
}
|