diff options
Diffstat (limited to 'server/src/entity/customers/mod.rs')
-rw-r--r-- | server/src/entity/customers/mod.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/server/src/entity/customers/mod.rs b/server/src/entity/customers/mod.rs index 06f99686..b5b9fa42 100644 --- a/server/src/entity/customers/mod.rs +++ b/server/src/entity/customers/mod.rs @@ -20,7 +20,7 @@ mod pathfinding; use super::EntityT; use crate::{data::Demand, game::Game}; -use anyhow::{anyhow, Result}; +use anyhow::{anyhow, bail, Result}; use fake::{faker, Fake}; use hurrycurry_protocol::{glam::IVec2, DemandIndex, Message, PacketC, PacketS, PlayerID}; use log::{info, warn}; @@ -61,15 +61,18 @@ enum CustomerState { } impl Customers { - pub fn new(chairs: HashMap<IVec2, bool>, demands: Vec<Demand>) -> Self { - Self { + pub fn new(chairs: HashMap<IVec2, bool>, demands: Vec<Demand>) -> Result<Self> { + if demands.is_empty() { + bail!("one or more demands required for customers entity") + } + Ok(Self { chairs, customer_id_counter: PlayerID(0), customers: Default::default(), demands, spawn_cooldown: 0., cpackets: VecDeque::new(), - } + }) } } |