diff options
Diffstat (limited to 'server/src/server.rs')
-rw-r--r-- | server/src/server.rs | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/server/src/server.rs b/server/src/server.rs index 95cf182c..368a79a9 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -69,6 +69,7 @@ pub trait GameServerExt { timer: Option<Duration>, packet_out: &mut VecDeque<PacketC>, ); + #[allow(clippy::too_many_arguments)] fn join_player( &mut self, id: PlayerID, @@ -417,17 +418,15 @@ impl Server { self.game.players_spatial_index.remove_entry(player); // TODO if holding two, one is destroyed - for item in p.items { - if let Some(item) = item { - let pos = p.movement.position.floor().as_ivec2(); - if let Some(tile) = self.game.tiles.get_mut(&pos) { - if tile.item.is_none() { - self.packet_out.push_back(PacketC::SetItem { - location: ItemLocation::Tile(pos), - item: Some(item.kind), - }); - tile.item = Some(item); - } + for item in p.items.into_iter().flatten() { + let pos = p.movement.position.floor().as_ivec2(); + if let Some(tile) = self.game.tiles.get_mut(&pos) { + if tile.item.is_none() { + self.packet_out.push_back(PacketC::SetItem { + location: ItemLocation::Tile(pos), + item: Some(item.kind), + }); + tile.item = Some(item); } } } |