diff options
author | metamuffin <metamuffin@disroot.org> | 2025-06-03 21:16:38 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-06-03 21:16:38 +0200 |
commit | 837868a90165c1021cfe24ffd030344a459b1ba0 (patch) | |
tree | 09c42a531e3f847fff261ea42dc70eadc9be3e36 /server/bot | |
parent | 09b6da1aab7bb9b89c3b2afbda5d3ff7913ad7e8 (diff) | |
download | hurrycurry-837868a90165c1021cfe24ffd030344a459b1ba0.tar hurrycurry-837868a90165c1021cfe24ffd030344a459b1ba0.tar.bz2 hurrycurry-837868a90165c1021cfe24ffd030344a459b1ba0.tar.zst |
fix dishwasher getting stuck; fix #277
Diffstat (limited to 'server/bot')
-rw-r--r-- | server/bot/src/algos/dishwasher.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/server/bot/src/algos/dishwasher.rs b/server/bot/src/algos/dishwasher.rs index 17698524..2bd1c9b2 100644 --- a/server/bot/src/algos/dishwasher.rs +++ b/server/bot/src/algos/dishwasher.rs @@ -95,16 +95,19 @@ impl State for DishWasher { impl Context<'_, DishWasher> { fn update(&mut self) -> LogicRes { - if let Some(pos) = self.find_item_on_map(self.state.dirty_plate.unwrap()) { - self.assert_tile_is_clear(pos)?; - } - if self.is_hand_item(self.state.dirty_plate.unwrap()) { - // TODO clear sink first but dont "steal" items from others working there - if let Some(sink) = self.find_empty_interactable_tile_by_name("sink") { + if let Some(sink) = self.find_empty_interactable_tile_by_name("sink") { + if let Some(pos) = self.find_item_on_map(self.state.dirty_plate.unwrap()) { + self.assert_tile_is_clear(pos)?; + } + if self.is_hand_item(self.state.dirty_plate.unwrap()) { + // TODO clear sink first but dont "steal" items from others working there self.interact_with(sink, 2.0)?; + } else { + self.assert_hand_is_clear()?; } + } else { + self.assert_hand_is_clear()?; } - self.assert_hand_is_clear()?; Ok(()) } } |