diff options
author | metamuffin <metamuffin@disroot.org> | 2024-09-20 16:23:31 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-09-20 16:23:31 +0200 |
commit | 07dd1b1dab03fb46e548e6a0e9d0311ac2111a36 (patch) | |
tree | 9197f9e04face3bea0ec8a5fc2109979e7dc2264 /server/src/server.rs | |
parent | b31d4b9fa1c8e1a17139e9aaf03d18c9c27e0c18 (diff) | |
download | hurrycurry-07dd1b1dab03fb46e548e6a0e9d0311ac2111a36.tar hurrycurry-07dd1b1dab03fb46e548e6a0e9d0311ac2111a36.tar.bz2 hurrycurry-07dd1b1dab03fb46e548e6a0e9d0311ac2111a36.tar.zst |
/end-tutorial
Diffstat (limited to 'server/src/server.rs')
-rw-r--r-- | server/src/server.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/server/src/server.rs b/server/src/server.rs index 6350d635..06b6e5fd 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -674,7 +674,22 @@ impl Server { warn!("Entity tick failed: {e}") } } - self.entities.retain(|e| !e.finished()); + self.entities.retain_mut(|e| { + if e.finished() { + e.destructor(EntityContext { + game: &mut self.game, + load_map: &mut load_map, + packet_out: &mut self.packet_out, + score_changed: &mut self.score_changed, + packet_in: &mut self.packet_loopback, + scoreboard: &self.scoreboard, + dt: 0., + }); + false + } else { + true + } + }); if let Some(map) = load_map { return Some((map, Some(Duration::from_secs(300)))); |