From d0596e468f7ba44cc499d9c40cebd4f8a67f9679 Mon Sep 17 00:00:00 2001
From: fheinrich <fheinrich@techfak.uni-bielefeld.de>
Date: Mon, 18 Mar 2024 13:34:25 +0100
Subject: [PATCH] Added layouts and item info from papers: gym-cooking and
 overcooked-ai

---
 .../configs/item_info_overcooked-ai.yaml      | 233 ++++++++++++++++++
 .../layouts/gym-cooking/1-open-divider.layout |   7 +
 .../gym-cooking/2-partial-divider.layout      |   7 +
 .../layouts/gym-cooking/3-full-divider.layout |   7 +
 .../overcooked-ai/1-cramped-room.layout       |   4 +
 .../2-asymmetric-advantages.layout            |   5 +
 .../overcooked-ai/3-coordination-ring.layout  |   5 +
 .../4-forced-coordination.layout              |   5 +
 .../overcooked-ai/5-counter-circuit.layout    |   5 +
 .../configs/study/gym-cooking_study.yaml      |  43 ++++
 .../configs/study/overcooked-ai_study.yaml    |  65 +++++
 11 files changed, 386 insertions(+)
 create mode 100644 cooperative_cuisine/configs/item_info_overcooked-ai.yaml
 create mode 100644 cooperative_cuisine/configs/layouts/gym-cooking/1-open-divider.layout
 create mode 100644 cooperative_cuisine/configs/layouts/gym-cooking/2-partial-divider.layout
 create mode 100644 cooperative_cuisine/configs/layouts/gym-cooking/3-full-divider.layout
 create mode 100644 cooperative_cuisine/configs/layouts/overcooked-ai/1-cramped-room.layout
 create mode 100644 cooperative_cuisine/configs/layouts/overcooked-ai/2-asymmetric-advantages.layout
 create mode 100644 cooperative_cuisine/configs/layouts/overcooked-ai/3-coordination-ring.layout
 create mode 100644 cooperative_cuisine/configs/layouts/overcooked-ai/4-forced-coordination.layout
 create mode 100644 cooperative_cuisine/configs/layouts/overcooked-ai/5-counter-circuit.layout
 create mode 100644 cooperative_cuisine/configs/study/gym-cooking_study.yaml
 create mode 100644 cooperative_cuisine/configs/study/overcooked-ai_study.yaml

diff --git a/cooperative_cuisine/configs/item_info_overcooked-ai.yaml b/cooperative_cuisine/configs/item_info_overcooked-ai.yaml
new file mode 100644
index 00000000..ade54dfb
--- /dev/null
+++ b/cooperative_cuisine/configs/item_info_overcooked-ai.yaml
@@ -0,0 +1,233 @@
+CuttingBoard:
+  type: Equipment
+
+Sink:
+  type: Equipment
+
+Stove:
+  type: Equipment
+
+DeepFryer:
+  type: Equipment
+
+Oven:
+  type: Equipment
+
+Pot:
+  type: Equipment
+  equipment: Stove
+
+Pan:
+  type: Equipment
+  equipment: Stove
+
+Basket:
+  type: Equipment
+  equipment: DeepFryer
+
+Peel:
+  type: Equipment
+  equipment: Oven
+
+DirtyPlate:
+  type: Equipment
+
+Plate:
+  type: Equipment
+  needs: [ DirtyPlate ]
+  seconds: 2.0
+  equipment: Sink
+
+# --------------------------------------------------------------------------------
+
+Tomato:
+  type: Ingredient
+
+Lettuce:
+  type: Ingredient
+
+Onion:
+  type: Ingredient
+
+Meat:
+  type: Ingredient
+
+Bun:
+  type: Ingredient
+
+Potato:
+  type: Ingredient
+
+Fish:
+  type: Ingredient
+
+Dough:
+  type: Ingredient
+
+Cheese:
+  type: Ingredient
+
+Sausage:
+  type: Ingredient
+
+# Chopped things
+ChoppedTomato:
+  type: Ingredient
+  needs: [ Tomato ]
+  seconds: 4.0
+  equipment: CuttingBoard
+
+ChoppedLettuce:
+  type: Ingredient
+  needs: [ Lettuce ]
+  seconds: 3.0
+  equipment: CuttingBoard
+
+ChoppedOnion:
+  type: Ingredient
+  needs: [ Onion ]
+  seconds: 4.0
+  equipment: CuttingBoard
+
+RawPatty:
+  type: Ingredient
+  needs: [ Meat ]
+  seconds: 4.0
+  equipment: CuttingBoard
+
+RawChips:
+  type: Ingredient
+  needs: [ Potato ]
+  seconds: 4.0
+  equipment: CuttingBoard
+
+ChoppedFish:
+  type: Ingredient
+  needs: [ Fish ]
+  seconds: 4.0
+  equipment: CuttingBoard
+
+PizzaBase:
+  type: Ingredient
+  needs: [ Dough ]
+  seconds: 4.0
+  equipment: CuttingBoard
+
+GratedCheese:
+  type: Ingredient
+  needs: [ Cheese ]
+  seconds: 4.0
+  equipment: CuttingBoard
+
+ChoppedSausage:
+  type: Ingredient
+  needs: [ Sausage ]
+  seconds: 4.0
+  equipment: CuttingBoard
+
+CookedPatty:
+  type: Ingredient
+  seconds: 5.0
+  needs: [ RawPatty ]
+  equipment: Pan
+
+# --------------------------------------------------------------------------------
+
+Chips:
+  type: Meal
+  seconds: 5.0
+  needs: [ RawChips ]
+  equipment: Basket
+
+FriedFish:
+  type: Meal
+  seconds: 5.0
+  needs: [ ChoppedFish ]
+  equipment: Basket
+
+Burger:
+  type: Meal
+  needs: [ Bun, ChoppedLettuce, ChoppedTomato, CookedPatty ]
+  equipment: ~
+
+Salad:
+  type: Meal
+  needs: [ ChoppedLettuce, ChoppedTomato ]
+  equipment: ~
+
+TomatoSoup:
+  type: Meal
+  needs: [ ChoppedTomato, ChoppedTomato, ChoppedTomato ]
+  seconds: 6.0
+  equipment: Pot
+
+OnionSoup:
+  type: Meal
+  needs: [ Onion, Onion, Onion ]
+  seconds: 6.0
+  equipment: Pot
+
+FishAndChips:
+  type: Meal
+  needs: [ FriedFish, Chips ]
+  equipment: ~
+
+Pizza:
+  type: Meal
+  needs: [ PizzaBase, ChoppedTomato, GratedCheese, ChoppedSausage ]
+  seconds: 7.0
+  equipment: Peel
+
+# --------------------------------------------------------------------------------
+
+BurntCookedPatty:
+  type: Waste
+  seconds: 10.0
+  needs: [ CookedPatty ]
+  equipment: Pan
+
+BurntChips:
+  type: Waste
+  seconds: 10.0
+  needs: [ Chips ]
+  equipment: Basket
+
+BurntFriedFish:
+  type: Waste
+  seconds: 10.0
+  needs: [ FriedFish ]
+  equipment: Basket
+
+BurntTomatoSoup:
+  type: Waste
+  needs: [ TomatoSoup ]
+  seconds: 20.0
+  equipment: Pot
+
+BurntOnionSoup:
+  type: Waste
+  needs: [ OnionSoup ]
+  seconds: 20.0
+  equipment: Pot
+
+BurntPizza:
+  type: Waste
+  needs: [ Pizza ]
+  seconds: 10.0
+  equipment: Peel
+
+# --------------------------------------------------------------------------------
+
+Fire:
+  type: Effect
+  seconds: 20.0
+  needs: [ BurntCookedPatty, BurntChips, BurntFriedFish, BurntTomatoSoup, BurntOnionSoup, BurntPizza ]
+  manager: FireManager
+  effect_type: Unusable
+
+# --------------------------------------------------------------------------------
+
+Extinguisher:
+  type: Tool
+  seconds: 1.0
+  needs: [ Fire ]
diff --git a/cooperative_cuisine/configs/layouts/gym-cooking/1-open-divider.layout b/cooperative_cuisine/configs/layouts/gym-cooking/1-open-divider.layout
new file mode 100644
index 00000000..b21b3150
--- /dev/null
+++ b/cooperative_cuisine/configs/layouts/gym-cooking/1-open-divider.layout
@@ -0,0 +1,7 @@
+#####T#
+C_____L
+C_____#
+$A___A#
+#_____#
+#_____P
+#####P#
\ No newline at end of file
diff --git a/cooperative_cuisine/configs/layouts/gym-cooking/2-partial-divider.layout b/cooperative_cuisine/configs/layouts/gym-cooking/2-partial-divider.layout
new file mode 100644
index 00000000..5d9d0d66
--- /dev/null
+++ b/cooperative_cuisine/configs/layouts/gym-cooking/2-partial-divider.layout
@@ -0,0 +1,7 @@
+#####T#
+C__#__L
+C__#__#
+$A_#_A#
+#__#__#
+#_____P
+#####P#
\ No newline at end of file
diff --git a/cooperative_cuisine/configs/layouts/gym-cooking/3-full-divider.layout b/cooperative_cuisine/configs/layouts/gym-cooking/3-full-divider.layout
new file mode 100644
index 00000000..9bd6b29a
--- /dev/null
+++ b/cooperative_cuisine/configs/layouts/gym-cooking/3-full-divider.layout
@@ -0,0 +1,7 @@
+#####T#
+C__#__L
+C__#__#
+$A_#_A#
+#__#__#
+#__#__P
+#####P#
\ No newline at end of file
diff --git a/cooperative_cuisine/configs/layouts/overcooked-ai/1-cramped-room.layout b/cooperative_cuisine/configs/layouts/overcooked-ai/1-cramped-room.layout
new file mode 100644
index 00000000..49655d1c
--- /dev/null
+++ b/cooperative_cuisine/configs/layouts/overcooked-ai/1-cramped-room.layout
@@ -0,0 +1,4 @@
+##U##
+NA_AN
+#___#
+#P#$#
\ No newline at end of file
diff --git a/cooperative_cuisine/configs/layouts/overcooked-ai/2-asymmetric-advantages.layout b/cooperative_cuisine/configs/layouts/overcooked-ai/2-asymmetric-advantages.layout
new file mode 100644
index 00000000..3b87f3e5
--- /dev/null
+++ b/cooperative_cuisine/configs/layouts/overcooked-ai/2-asymmetric-advantages.layout
@@ -0,0 +1,5 @@
+#########
+N_#$#N#_$
+#_A_U_A_#
+#___U___#
+###P#P###
\ No newline at end of file
diff --git a/cooperative_cuisine/configs/layouts/overcooked-ai/3-coordination-ring.layout b/cooperative_cuisine/configs/layouts/overcooked-ai/3-coordination-ring.layout
new file mode 100644
index 00000000..f83c2adf
--- /dev/null
+++ b/cooperative_cuisine/configs/layouts/overcooked-ai/3-coordination-ring.layout
@@ -0,0 +1,5 @@
+###U#
+#__AU
+P_#_#
+NA__#
+#N$##
diff --git a/cooperative_cuisine/configs/layouts/overcooked-ai/4-forced-coordination.layout b/cooperative_cuisine/configs/layouts/overcooked-ai/4-forced-coordination.layout
new file mode 100644
index 00000000..bc835ae3
--- /dev/null
+++ b/cooperative_cuisine/configs/layouts/overcooked-ai/4-forced-coordination.layout
@@ -0,0 +1,5 @@
+###U#
+N_#AU
+N_#_#
+PA#_#
+###$#
diff --git a/cooperative_cuisine/configs/layouts/overcooked-ai/5-counter-circuit.layout b/cooperative_cuisine/configs/layouts/overcooked-ai/5-counter-circuit.layout
new file mode 100644
index 00000000..6c583950
--- /dev/null
+++ b/cooperative_cuisine/configs/layouts/overcooked-ai/5-counter-circuit.layout
@@ -0,0 +1,5 @@
+###UU###
+#A_____#
+P_####_$
+#_____A#
+###NN###
\ No newline at end of file
diff --git a/cooperative_cuisine/configs/study/gym-cooking_study.yaml b/cooperative_cuisine/configs/study/gym-cooking_study.yaml
new file mode 100644
index 00000000..e3320473
--- /dev/null
+++ b/cooperative_cuisine/configs/study/gym-cooking_study.yaml
@@ -0,0 +1,43 @@
+levels:
+  - config_path: CONFIGS_DIR/environment_config.yaml
+    layout_path: LAYOUTS_DIR/gym-cooking/1-open-divider.layout
+    item_info_path: CONFIGS_DIR/item_info.yaml
+    name: "Level 1: Open Divider"
+    config_overwrite:
+      game:
+        time_limit_seconds: 10
+      plates:
+        clean_plates: 3
+        dirty_plates: 0
+        return_dirty: false
+
+  - config_path: CONFIGS_DIR/environment_config.yaml
+    layout_path: LAYOUTS_DIR/gym-cooking/2-partial-divider.layout
+    item_info_path: CONFIGS_DIR/item_info.yaml
+    name: "Level 2: Partial Divider"
+    config_overwrite:
+      game:
+        time_limit_seconds: 10
+      plates:
+        clean_plates: 3
+        dirty_plates: 0
+        return_dirty: false
+
+
+  - config_path: CONFIGS_DIR/environment_config.yaml
+    layout_path: LAYOUTS_DIR/gym-cooking/3-full-divider.layout
+    item_info_path: CONFIGS_DIR/item_info.yaml
+    name: "Level 3: Full Divider"
+    config_overwrite:
+      game:
+        time_limit_seconds: 10
+      plates:
+        clean_plates: 3
+        dirty_plates: 0
+        return_dirty: false
+
+
+
+
+num_players: 1
+num_bots: 0
diff --git a/cooperative_cuisine/configs/study/overcooked-ai_study.yaml b/cooperative_cuisine/configs/study/overcooked-ai_study.yaml
new file mode 100644
index 00000000..b5cd79f6
--- /dev/null
+++ b/cooperative_cuisine/configs/study/overcooked-ai_study.yaml
@@ -0,0 +1,65 @@
+levels:
+  - config_path: CONFIGS_DIR/environment_config.yaml
+    layout_path: LAYOUTS_DIR/overcooked-ai/1-cramped-room.layout
+    item_info_path: CONFIGS_DIR/item_info_overcooked-ai.yaml
+    name: "Level 1: Cramped Room"
+    config_overwrite:
+      game:
+        time_limit_seconds: 120
+      plates:
+        clean_plates: 3
+        dirty_plates: 0
+        return_dirty: false
+
+  - config_path: CONFIGS_DIR/environment_config.yaml
+    layout_path: LAYOUTS_DIR/overcooked-ai/2-asymmetric-advantages.layout
+    item_info_path: CONFIGS_DIR/item_info_overcooked-ai.yaml
+    name: "Level 2: Asymmetric Advantages"
+    config_overwrite:
+      game:
+        time_limit_seconds: 120
+      plates:
+        clean_plates: 3
+        dirty_plates: 0
+        return_dirty: false
+
+  - config_path: CONFIGS_DIR/environment_config.yaml
+    layout_path: LAYOUTS_DIR/overcooked-ai/3-coordination-ring.layout
+    item_info_path: CONFIGS_DIR/item_info_overcooked-ai.yaml
+    name: "Level 3: Coordination Ring"
+    config_overwrite:
+      game:
+        time_limit_seconds: 120
+      plates:
+        clean_plates: 3
+        dirty_plates: 0
+        return_dirty: false
+
+  - config_path: CONFIGS_DIR/environment_config.yaml
+    layout_path: LAYOUTS_DIR/overcooked-ai/4-forced-coordination.layout
+    item_info_path: CONFIGS_DIR/item_info_overcooked-ai.yaml
+    name: "Level 4: Forced Coordination"
+    config_overwrite:
+      game:
+        time_limit_seconds: 120
+      plates:
+        clean_plates: 3
+        dirty_plates: 0
+        return_dirty: false
+
+  - config_path: CONFIGS_DIR/environment_config.yaml
+    layout_path: LAYOUTS_DIR/overcooked-ai/5-counter-circuit.layout
+    item_info_path: CONFIGS_DIR/item_info_overcooked-ai.yaml
+    name: "Level 5: Counter Circuit"
+    config_overwrite:
+      game:
+        time_limit_seconds: 120
+      plates:
+        clean_plates: 3
+        dirty_plates: 0
+        return_dirty: false
+
+
+
+num_players: 1
+num_bots: 0
-- 
GitLab