From c646336dc3bf470d4185eec995d00a89c420127b Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 4 Sep 2024 22:11:51 +0200 Subject: book as entity and /book command --- server/src/entity/mod.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'server/src/entity/mod.rs') diff --git a/server/src/entity/mod.rs b/server/src/entity/mod.rs index c8424934..30a5da55 100644 --- a/server/src/entity/mod.rs +++ b/server/src/entity/mod.rs @@ -15,6 +15,7 @@ along with this program. If not, see . */ +pub mod book; pub mod bot; pub mod campaign; pub mod conveyor; @@ -25,6 +26,7 @@ pub mod player_portal; use crate::{data::ItemTileRegistry, scoreboard::ScoreboardStore}; use anyhow::{anyhow, Result}; +use book::Book; use campaign::{Gate, GateCondition, Map}; use conveyor::Conveyor; use customers::Customers; @@ -53,7 +55,9 @@ pub struct EntityContext<'a> { } pub trait Entity { - fn tick(&mut self, c: EntityContext<'_>) -> Result<()>; + fn tick(&mut self, _c: EntityContext<'_>) -> Result<()> { + Ok(()) + } fn destructor(&mut self, _c: EntityContext<'_>) {} fn interact( &mut self, @@ -117,6 +121,7 @@ pub enum EntityDecl { location: Option, condition: GateCondition, }, + Book, } pub fn construct_entity( @@ -125,6 +130,7 @@ pub fn construct_entity( reg: &ItemTileRegistry, ) -> Result { Ok(match decl.to_owned() { + EntityDecl::Book => Box::new(Book(pos.ok_or(anyhow!("book is tile entity"))?)), EntityDecl::ItemPortal { from, to } => Box::new(ItemPortal { from: from .or(pos) -- cgit v1.2.3-70-g09d2