60 lines
1.6 KiB
Markdown
60 lines
1.6 KiB
Markdown
|
|
|
|
|
|
- Move recipes into a Yaml file that is read, and handles symetry through a Static manager class?
|
|
A `FoodItem` has an ID.
|
|
Example:
|
|
```yaml
|
|
combining: # The combinging of two items, entries always have a list of exactly two items
|
|
cooked_burger:
|
|
- cooked_burger
|
|
- burger_buns
|
|
dough:
|
|
- flour
|
|
- water
|
|
|
|
cooking:
|
|
cooked_burger:
|
|
ingredient: raw_burger
|
|
time: 3
|
|
charcoal:
|
|
ingredient: cooked_burger
|
|
time: 4
|
|
charcoal:
|
|
ingredient: toast
|
|
time: 2
|
|
|
|
augmenting: # Process of adding an item onto another without changing it's type, but toggling attributes.
|
|
cooked_burger:
|
|
has_tomato: sliced_tomato
|
|
has_cheese: cheese
|
|
salad:
|
|
has_tomato: sliced_tomato
|
|
has_olives: olives
|
|
|
|
chopping:
|
|
salad:
|
|
ingredient: lettuce
|
|
work: 50 # Wave arms faster makes work go faster
|
|
|
|
rolling:
|
|
pie_base:
|
|
ingredient: dough
|
|
work: 80
|
|
```
|
|
```py
|
|
on_area_enter(other):
|
|
var result = RecipeManager.getCombination(my_id, other_id)
|
|
if result:
|
|
convertInto(result)
|
|
```
|
|
|
|
- Counters are stations like hobs that convert items by chopping, rolling ect depending on `RecipeManager`,
|
|
and only converts items after hand gestures are done enough?
|
|
|
|
- Plates are lists of `FoodItems`?
|
|
Plate[`Hamburger`] accepts `Chips` => Plate[`Hamburger`, `Chips`]
|
|
Plate[`Hamburger`, `Chips`] accepts `Cheese` => Plate[`Hamburger(Cheese=true)`, `Chips`]
|
|
The logic for combining has to be expanded for plates.
|
|
- Plates have a property `is_dirty` they get after a customer clears the plate, and is disabled after being processed in `Sink`
|