diff options
Diffstat (limited to 'server/src/server.rs')
-rw-r--r-- | server/src/server.rs | 76 |
1 files changed, 11 insertions, 65 deletions
diff --git a/server/src/server.rs b/server/src/server.rs index 109d5561..47cfdcf4 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -18,7 +18,7 @@ use crate::{ data::{DataIndex, Serverdata}, entity::{Entities, EntityContext}, - interaction::{interact, tick_slot, TickEffect}, + interaction::{interact, tick_slot}, scoreboard::ScoreboardStore, ConnectionID, }; @@ -542,43 +542,16 @@ impl Server { } for (&pos, tile) in &mut self.game.tiles { - if let Some(effect) = tick_slot( + tick_slot( dt, &self.game.data, Some(tile.kind), &mut tile.item, + ItemLocation::Tile(pos), &mut self.game.score, - ) { - match effect { - TickEffect::Progress { - speed, - position, - warn, - } => self.packet_out.push_back(PacketC::SetProgress { - position, - speed, - warn, - item: ItemLocation::Tile(pos), - }), - TickEffect::ClearProgress => { - self.packet_out.push_back(PacketC::ClearProgress { - item: ItemLocation::Tile(pos), - }) - } - TickEffect::Produce => { - self.packet_out.push_back(PacketC::SetProgress { - warn: false, - item: ItemLocation::Tile(pos), - position: 1., - speed: 0., - }); - self.packet_out.push_back(PacketC::SetItem { - location: ItemLocation::Tile(pos), - item: tile.item.as_ref().map(|i| i.kind), - }); - } - } - } + &mut self.score_changed, + &mut self.packet_out, + ); } for (&pid, player) in &mut self.game.players { @@ -608,43 +581,16 @@ impl Server { rot: player.movement.rotation, }); - if let Some(effect) = tick_slot( + tick_slot( dt, &self.game.data, None, &mut player.item, + ItemLocation::Player(pid), &mut self.game.score, - ) { - match effect { - TickEffect::Progress { - position, - speed, - warn, - } => self.packet_out.push_back(PacketC::SetProgress { - warn, - position, - speed, - item: ItemLocation::Player(pid), - }), - TickEffect::ClearProgress => { - self.packet_out.push_back(PacketC::ClearProgress { - item: ItemLocation::Player(pid), - }) - } - TickEffect::Produce => { - self.packet_out.push_back(PacketC::SetProgress { - warn: false, - item: ItemLocation::Player(pid), - position: 1., - speed: 0., - }); - self.packet_out.push_back(PacketC::SetItem { - location: ItemLocation::Player(pid), - item: player.item.as_ref().map(|i| i.kind), - }); - } - } - } + &mut self.score_changed, + &mut self.packet_out, + ); } let mut players_auto_release = Vec::new(); |