diff options
| author | Arne Dußin | 2021-02-03 16:26:59 +0100 |
|---|---|---|
| committer | Arne Dußin | 2021-02-03 16:26:59 +0100 |
| commit | 9ab689527b3ede7750579b1a926cf0cf88813463 (patch) | |
| tree | 959894450512ebb10e86ed62058da1d7039614ef /src/server/mod.rs | |
| parent | d4c1c7ecb5688ef64f45425d9ac8e7ddeb8e8602 (diff) | |
| download | graf_karto-9ab689527b3ede7750579b1a926cf0cf88813463.tar.gz graf_karto-9ab689527b3ede7750579b1a926cf0cf88813463.zip | |
Add capability to draw rooms
Diffstat (limited to 'src/server/mod.rs')
| -rw-r--r-- | src/server/mod.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/server/mod.rs b/src/server/mod.rs index 9b55502..fe208ad 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -2,6 +2,7 @@ use crate::net::server::ConnectionManager; use crate::net::Cargo; +use crate::world::World; use std::io; use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr}; use std::thread::{self, JoinHandle}; @@ -40,9 +41,17 @@ pub fn start_any_port(ipv4: bool) -> Result<(JoinHandle<()>, u16), io::Error> { fn start(conn_man: ConnectionManager<Cargo>) -> JoinHandle<()> { info!("Server started on port {}", conn_man.port()); + + let mut world = World::new(); thread::spawn(move || loop { - if let Some(cargo) = conn_man.next_packet() { - println!("Received cargo: {:?}", cargo); + if let Some((user, cargo)) = conn_man.next_packet() { + match cargo { + Cargo::AddRoom(room) => { + let room_id = world.push_room(room.clone()); + conn_man.broadcast(Cargo::SetRoom((room_id, room))); + } + other => error!("Unknown packet received from `{}`: {:?}", user, other), + } } }) } |
