Skip to content
Snippets Groups Projects
Commit ffb81cfd authored by Florian Schröder's avatar Florian Schröder
Browse files

fix serving window and plate creation after some time.

parent 6782de8c
No related branches found
No related tags found
1 merge request!19Resolve "Add recipe yaml check + visualize recipes"
Pipeline #43951 failed
...@@ -142,10 +142,15 @@ class CuttingBoard(Counter): ...@@ -142,10 +142,15 @@ class CuttingBoard(Counter):
class ServingWindow(Counter): class ServingWindow(Counter):
def __init__( def __init__(
self, pos, game_score: GameScore, plate_dispenser: PlateDispenser = None self,
pos,
game_score: GameScore,
meals: list[str],
plate_dispenser: PlateDispenser = None,
): ):
self.game_score = game_score self.game_score = game_score
self.plate_dispenser = plate_dispenser self.plate_dispenser = plate_dispenser
self.meals = meals
super().__init__(pos) super().__init__(pos)
def drop_off(self, item) -> Item | None: def drop_off(self, item) -> Item | None:
...@@ -157,22 +162,11 @@ class ServingWindow(Counter): ...@@ -157,22 +162,11 @@ class ServingWindow(Counter):
self.plate_dispenser.update_plate_out_of_kitchen() self.plate_dispenser.update_plate_out_of_kitchen()
return None return None
def can_score(self, item):
if (
isinstance(item, CookingEquipment)
and "Plate" in item.name
and item.content is not None
):
if isinstance(item.content, Meal) and item.content.progressed_steps:
return item.content.finished
if not item.content.item_info.steps_needed and len(
item.content.item_info.needs
) == len(item.content.parts):
return True
return False
def can_drop_off(self, item: Item) -> bool: def can_drop_off(self, item: Item) -> bool:
return self.can_score(item) return isinstance(item, CookingEquipment) and (
(item.content_ready is not None and item.content_ready.name in self.meals)
or (len(item.content_list) == 1 and item.content_list[0].name in self.meals)
)
def pick_up(self, on_hands: bool = True): def pick_up(self, on_hands: bool = True):
pass pass
...@@ -250,7 +244,7 @@ class PlateDispenser(Counter): ...@@ -250,7 +244,7 @@ class PlateDispenser(Counter):
return None return None
def add_dirty_plate(self): def add_dirty_plate(self):
self.occupied_by.appendleft(self.dispensing.create_item()) self.occupied_by.appendleft(self.create_item())
def update_plate_out_of_kitchen(self): def update_plate_out_of_kitchen(self):
"""Is called from the serving window to add a plate out of kitchen.""" """Is called from the serving window to add a plate out of kitchen."""
......
...@@ -112,7 +112,15 @@ class Environment: ...@@ -112,7 +112,15 @@ class Environment:
}, },
), ),
"X": Trash, "X": Trash,
"W": lambda pos: ServingWindow(pos, self.game_score), "W": lambda pos: ServingWindow(
pos,
self.game_score,
meals={
item
for item, info in self.item_info.items()
if info.type == ItemType.Meal
},
),
"T": lambda pos: Dispenser(pos, self.item_info["Tomato"]), "T": lambda pos: Dispenser(pos, self.item_info["Tomato"]),
"L": lambda pos: Dispenser(pos, self.item_info["Lettuce"]), "L": lambda pos: Dispenser(pos, self.item_info["Lettuce"]),
"P": lambda pos: PlateDispenser( "P": lambda pos: PlateDispenser(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment