From 3951a63d9393ed7e1381bbb9da95dfb2dd2d6b13 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 14 Oct 2024 00:24:15 +0200 Subject: book intermediate representation and packets for sending to client --- server/src/entity/book.rs | 2 +- server/src/entity/customers.rs | 1 + server/src/entity/mod.rs | 7 ++++++- 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'server/src/entity') diff --git a/server/src/entity/book.rs b/server/src/entity/book.rs index 70197764..8b152bb9 100644 --- a/server/src/entity/book.rs +++ b/server/src/entity/book.rs @@ -32,7 +32,7 @@ impl Entity for Book { ) -> Result { if pos == Some(self.0) { if let Some(r) = c.replies { - r.push(PacketC::Menu(Menu::Book)); + r.push(PacketC::Menu(Menu::Document(c.serverdata.book.clone()))); } return Ok(true); } diff --git a/server/src/entity/customers.rs b/server/src/entity/customers.rs index 1e8b6b13..0c3ced8d 100644 --- a/server/src/entity/customers.rs +++ b/server/src/entity/customers.rs @@ -65,6 +65,7 @@ impl Entity for Customers { for bot in &mut self.customers { bot.tick(EntityContext { game: c.game, + serverdata: c.serverdata, packet_out: c.packet_out, packet_in: c.packet_in, score_changed: c.score_changed, diff --git a/server/src/entity/mod.rs b/server/src/entity/mod.rs index 87656f0d..044fccab 100644 --- a/server/src/entity/mod.rs +++ b/server/src/entity/mod.rs @@ -25,7 +25,11 @@ pub mod item_portal; pub mod player_portal; pub mod tutorial; -use crate::{data::ItemTileRegistry, message::TrError, scoreboard::ScoreboardStore}; +use crate::{ + data::{ItemTileRegistry, Serverdata}, + message::TrError, + scoreboard::ScoreboardStore, +}; use anyhow::{anyhow, Result}; use book::Book; use campaign::{Gate, GateCondition, Map}; @@ -47,6 +51,7 @@ pub type Entities = Vec; pub struct EntityContext<'a> { pub game: &'a mut Game, + pub serverdata: &'a Serverdata, pub packet_out: &'a mut VecDeque, pub packet_in: &'a mut VecDeque, pub score_changed: &'a mut bool, -- cgit v1.2.3-70-g09d2