aboutsummaryrefslogtreecommitdiff
path: root/server/src/server.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-10-06 23:03:32 +0200
committermetamuffin <metamuffin@disroot.org>2025-10-06 23:03:40 +0200
commit176e6bc6c4c29bea3be2aceca99743b997c76c97 (patch)
tree1161e7a966843324756340da4b6452492902fa07 /server/src/server.rs
parentea86b11b682500160f37b35ea8f06b081cd05036 (diff)
downloadhurrycurry-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.rs13
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,