aboutsummaryrefslogtreecommitdiff
path: root/server/src/server.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-09-20 16:23:31 +0200
committermetamuffin <metamuffin@disroot.org>2024-09-20 16:23:31 +0200
commit07dd1b1dab03fb46e548e6a0e9d0311ac2111a36 (patch)
tree9197f9e04face3bea0ec8a5fc2109979e7dc2264 /server/src/server.rs
parentb31d4b9fa1c8e1a17139e9aaf03d18c9c27e0c18 (diff)
downloadhurrycurry-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.rs17
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))));