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