From 176e6bc6c4c29bea3be2aceca99743b997c76c97 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 6 Oct 2025 23:03:32 +0200 Subject: Move data code to own crate + general data refactor --- server/src/server.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'server/src/server.rs') 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, ) { 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, -- cgit v1.2.3-70-g09d2