diff options
Diffstat (limited to 'server/src/entity')
-rw-r--r-- | server/src/entity/customers/mod.rs | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/server/src/entity/customers/mod.rs b/server/src/entity/customers/mod.rs index e6067110..0bb3f918 100644 --- a/server/src/entity/customers/mod.rs +++ b/server/src/entity/customers/mod.rs @@ -33,7 +33,6 @@ pub struct Customers { demands: Vec<Demand>, cpackets: VecDeque<PacketS>, chairs: HashMap<IVec2, bool>, - customer_id_counter: PlayerID, customers: HashMap<PlayerID, CustomerState>, spawn_cooldown: f32, } @@ -67,7 +66,6 @@ impl Customers { } Ok(Self { chairs, - customer_id_counter: PlayerID(0), customers: Default::default(), demands, spawn_cooldown: 0., @@ -82,12 +80,12 @@ impl EntityT for Customers { self.spawn_cooldown = self.spawn_cooldown.max(0.); if self.customers.len() < 5 && self.spawn_cooldown <= 0. { self.spawn_cooldown = 10. + random::<f32>() * 10.; - self.customer_id_counter.0 -= 1; - let id = self.customer_id_counter; - self.cpackets.push_back(PacketS::Join { - name: faker::name::fr_fr::Name().fake(), - character: -1 - (random::<u16>() as i32), - }); + let id = game.join_player( + faker::name::fr_fr::Name().fake(), + -1 - (random::<u16>() as i32), + packet_out, + ); + let chair = self.select_chair().ok_or(anyhow!("no free chair found"))?; let from = game.data.customer_spawn.as_ivec2(); let path = find_path(&game.walkable, from, chair) |