aboutsummaryrefslogtreecommitdiff
path: root/server/client-lib
diff options
context:
space:
mode:
Diffstat (limited to 'server/client-lib')
-rw-r--r--server/client-lib/src/lib.rs31
1 files changed, 8 insertions, 23 deletions
diff --git a/server/client-lib/src/lib.rs b/server/client-lib/src/lib.rs
index b4cb0724..fc0f8ae6 100644
--- a/server/client-lib/src/lib.rs
+++ b/server/client-lib/src/lib.rs
@@ -15,7 +15,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#![feature(map_many_mut)]
+#![feature(map_many_mut, let_chains)]
pub mod network;
pub mod spatial_index;
@@ -60,6 +60,7 @@ pub struct Player {
pub movement: MovementBase,
}
+#[derive(Default)]
pub struct Game {
pub data: Arc<Gamedata>,
pub tiles: HashMap<IVec2, Tile>,
@@ -73,22 +74,6 @@ pub struct Game {
pub score: Score,
}
-impl Default for Game {
- fn default() -> Self {
- Self {
- data: Default::default(),
- tiles: HashMap::new(),
- walkable: HashSet::new(),
- players: HashMap::new(),
- players_spatial_index: SpatialIndex::default(),
- end: None,
- lobby: false,
- environment_effects: HashSet::new(),
- score: Score::default(),
- }
- }
-}
-
impl Game {
pub fn apply_packet(&mut self, packet: PacketC) {
match packet {
@@ -176,10 +161,10 @@ impl Game {
message,
timeout,
} => {
- if let Some(timeout) = &timeout {
- if let Some(player) = self.players.get_mut(&player) {
- player.communicate_persist = message.to_owned().map(|m| (m, *timeout));
- }
+ if let Some(timeout) = &timeout
+ && let Some(player) = self.players.get_mut(&player)
+ {
+ player.communicate_persist = message.to_owned().map(|m| (m, *timeout));
}
}
PacketC::Score(score) => {
@@ -211,14 +196,14 @@ impl Game {
.update_entry(pid, player.movement.position);
}
- for (_, player) in &mut self.players {
+ for player in self.players.values_mut() {
if let Some(item) = &mut player.item {
if let Some(active) = &mut item.active {
active.position += active.speed;
}
}
}
- for (_, tile) in &mut self.tiles {
+ for tile in self.tiles.values_mut() {
if let Some(item) = &mut tile.item {
if let Some(active) = &mut item.active {
active.position += active.speed;