diff options
author | metamuffin <metamuffin@disroot.org> | 2025-10-06 23:03:32 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-10-06 23:03:40 +0200 |
commit | 176e6bc6c4c29bea3be2aceca99743b997c76c97 (patch) | |
tree | 1161e7a966843324756340da4b6452492902fa07 /server/src/server.rs | |
parent | ea86b11b682500160f37b35ea8f06b081cd05036 (diff) | |
download | hurrycurry-176e6bc6c4c29bea3be2aceca99743b997c76c97.tar hurrycurry-176e6bc6c4c29bea3be2aceca99743b997c76c97.tar.bz2 hurrycurry-176e6bc6c4c29bea3be2aceca99743b997c76c97.tar.zst |
Move data code to own crate + general data refactor
Diffstat (limited to 'server/src/server.rs')
-rw-r--r-- | server/src/server.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/server/src/server.rs b/server/src/server.rs index e16fdb61..c370f3c4 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -16,14 +16,14 @@ */ use crate::{ - data::{DataIndex, Serverdata}, - entity::{Entities, EntityContext}, + entity::{construct_entity, Entities, EntityContext}, interaction::{interact, tick_slot}, scoreboard::ScoreboardStore, ConnectionID, }; use anyhow::{Context, Result}; use hurrycurry_client_lib::{gamedata_index::GamedataIndex, Game, Involvement, Item, Player, Tile}; +use hurrycurry_data::{index::DataIndex, Serverdata}; use hurrycurry_locale::{tre, TrError}; use hurrycurry_protocol::{ glam::{IVec2, Vec2}, @@ -353,7 +353,7 @@ impl Server { impl Server { pub fn load( &mut self, - (gamedata, serverdata, entities): (Gamedata, Serverdata, Entities), + (gamedata, serverdata): (Gamedata, Serverdata), timer: Option<Duration>, ) { for mut e in self.entities.drain(..) { @@ -369,7 +369,7 @@ impl Server { load_map: &mut None, }); } - self.tick(0.); + self.tick(0.); // TODO ? self.game.load( gamedata, &serverdata, @@ -377,8 +377,11 @@ impl Server { &mut self.packet_out, ); self.gamedata_index.update(&self.game.data); + for ed in &serverdata.entity_decls { + self.entities.push(construct_entity(ed, &self.game.data)); + } self.data = serverdata.into(); - self.entities = entities; + self.entities.clear(); for e in &mut self.entities { e.constructor(EntityContext { game: &mut self.game, |