summaryrefslogtreecommitdiff
path: root/server/bot/src/algos/dishwasher.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/bot/src/algos/dishwasher.rs')
-rw-r--r--server/bot/src/algos/dishwasher.rs17
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(())
}
}