From 8d166e628ceb2072e045b9ff6b1dcc1002a34d8e Mon Sep 17 00:00:00 2001 From: Arne Dußin Date: Wed, 3 Feb 2021 23:00:09 +0100 Subject: Add most of the offline functionality back --- src/client/editor.rs | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'src/client/editor.rs') diff --git a/src/client/editor.rs b/src/client/editor.rs index e416339..fb271d4 100644 --- a/src/client/editor.rs +++ b/src/client/editor.rs @@ -168,12 +168,32 @@ impl Editor { fn poll_net(&mut self) { while let Some(cargo) = self.server().next_packet() { match cargo { - Cargo::SetRoom((id, new_room)) => { - if let Some(mark) = self.map.get_room_mut(id) { - mark.set_room(new_room); - } else { + Cargo::SetRoom((id, new_room)) => match self.map.get_room_mut(id) { + Some(mark) => mark.set_room(new_room), + None => { self.map.add_room(id, new_room); } + }, + Cargo::SetIcon((id, new_icon)) => match self.map.get_icon_mut(id) { + Some(mark) => mark.set_icon(new_icon), + None => { + self.map.add_icon(id, new_icon); + } + }, + Cargo::SetWall((id, new_wall)) => match self.map.get_wall_mut(id) { + Some(mark) => mark.set_wall(new_wall), + None => { + self.map.add_wall(id, new_wall); + } + }, + Cargo::ClearAll => self.map.clear(), + Cargo::Remove(id) => { + self.map.remove(id); + } + Cargo::AddMapData(_) => unimplemented!(), + Cargo::UpdateMapData(_) => unimplemented!(), + Cargo::AddIcon(_) | Cargo::AddRoom(_) | Cargo::AddWall(_) => { + error!("Packet is only valid in Client -> Server direction") } other => error!("Unknown packet received: {:?}", other), } -- cgit v1.2.3-70-g09d2