From 5033c326094edc1ff4234b994e95d987cb937fc4 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 30 Sep 2025 01:19:01 +0200 Subject: Implement tile placeable items for server-side (#433) --- server/bot/src/algos/customer.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'server/bot/src/algos/customer.rs') diff --git a/server/bot/src/algos/customer.rs b/server/bot/src/algos/customer.rs index 043e5358..cb5c5b59 100644 --- a/server/bot/src/algos/customer.rs +++ b/server/bot/src/algos/customer.rs @@ -134,15 +134,17 @@ impl CustomerState { let check = *ticks % 10 == 0; if path.is_done() { let demand = DemandIndex(random::() as usize % game.data.demands.len()); + let requested_item = game.data.demands[demand.0].input; info!("{me:?} -> waiting"); let timeout = 90. + random::() * 60.; let mut facing = Vec2::ZERO; for off in [IVec2::NEG_X, IVec2::NEG_Y, IVec2::X, IVec2::Y] { - if game - .tiles - .get(&(off + *chair)) - .is_some_and(|t| game.data.is_tile_interactable(t.kind)) - { + if game.tiles.get(&(off + *chair)).is_some_and(|t| { + game.data + .tile_placeable_items + .get(&t.kind) + .map_or(true, |p| p.contains(&requested_item)) + }) { facing = off.as_vec2(); } } @@ -158,9 +160,9 @@ impl CustomerState { let message_item = if config.unknown_order { game.data .get_item_by_name("unknown-order") - .unwrap_or(game.data.demands[demand.0].input) + .unwrap_or(requested_item) } else { - game.data.demands[demand.0].input + requested_item }; BotInput { extra: vec![PacketS::Communicate { -- cgit v1.2.3-70-g09d2