From bbb290f9b628331d95a77af686a9a0de2b300111 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20Schr=C3=B6der?=
 <fschroeder@techfak.uni-bielefeld.de>
Date: Thu, 18 Jan 2024 16:03:01 +0100
Subject: [PATCH] remove player config and add it to environment_config.yaml

---
 .../game_content/environment_config.yaml           |  5 +++++
 .../game_content/player_config.yaml                |  3 ---
 overcooked_simulator/overcooked_environment.py     | 14 ++++++++------
 overcooked_simulator/player.py                     | 13 +++----------
 4 files changed, 16 insertions(+), 19 deletions(-)
 delete mode 100644 overcooked_simulator/game_content/player_config.yaml

diff --git a/overcooked_simulator/game_content/environment_config.yaml b/overcooked_simulator/game_content/environment_config.yaml
index 594decfa..d69f18f8 100644
--- a/overcooked_simulator/game_content/environment_config.yaml
+++ b/overcooked_simulator/game_content/environment_config.yaml
@@ -35,3 +35,8 @@ orders:
       default: -5
   serving_not_ordered_meals: null
   order_gen_class: !!python/name:overcooked_simulator.order.RandomOrderGeneration ''
+
+player_config:
+  radius: 0.4
+  move_dist: 0.15
+  interaction_range: 1.6
\ No newline at end of file
diff --git a/overcooked_simulator/game_content/player_config.yaml b/overcooked_simulator/game_content/player_config.yaml
deleted file mode 100644
index b684cabe..00000000
--- a/overcooked_simulator/game_content/player_config.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-radius: 0.4
-move_dist: 0.15
-interaction_range: 1.6
\ No newline at end of file
diff --git a/overcooked_simulator/overcooked_environment.py b/overcooked_simulator/overcooked_environment.py
index 7f612810..a7dcc90d 100644
--- a/overcooked_simulator/overcooked_environment.py
+++ b/overcooked_simulator/overcooked_environment.py
@@ -63,7 +63,7 @@ class Environment:
         self.players: dict[str, Player] = {}
 
         with open(env_config_path, "r") as file:
-            environment_config = yaml.load(file, Loader=yaml.Loader)
+            self.environment_config = yaml.load(file, Loader=yaml.Loader)
         self.layout_path: Path = layout_path
         # self.counter_side_length = 1  # -> this changed! is 1 now
 
@@ -71,7 +71,7 @@ class Environment:
         self.item_info = self.load_item_info()
         self.validate_item_info()
         self.order_and_score = OrderAndScoreManager(
-            order_config=environment_config["orders"],
+            order_config=self.environment_config["orders"],
             available_meals={
                 item: info
                 for item, info in self.item_info.items()
@@ -116,8 +116,8 @@ class Environment:
                 plate_transitions=plate_transitions,
                 pos=pos,
                 dispensing=self.item_info["Plate"],
-                plate_config=environment_config["plates"]
-                if "plates" in environment_config
+                plate_config=self.environment_config["plates"]
+                if "plates" in self.environment_config
                 else {},
             ),
             "N": lambda pos: Dispenser(pos, self.item_info["Onion"]),  # N for oNioN
@@ -183,7 +183,7 @@ class Environment:
         self.order_and_score.create_init_orders(self.env_time)
         self.beginning_time = self.env_time
         self.env_time_end = self.env_time + timedelta(
-            seconds=environment_config["game"]["time_limit_seconds"]
+            seconds=self.environment_config["game"]["time_limit_seconds"]
         )
         log.debug(f"End time: {self.env_time_end}")
 
@@ -522,7 +522,9 @@ class Environment:
 
     def add_player(self, player_name: str, pos: npt.NDArray = None):
         log.debug(f"Add player {player_name} to the game")
-        player = Player(player_name, pos)
+        player = Player(
+            player_name, player_config=self.environment_config["player_config"], pos=pos
+        )
         self.players[player.name] = player
         if player.pos is None:
             if len(self.designated_player_positions) > 0:
diff --git a/overcooked_simulator/player.py b/overcooked_simulator/player.py
index dc70d32c..63f803c8 100644
--- a/overcooked_simulator/player.py
+++ b/overcooked_simulator/player.py
@@ -1,13 +1,10 @@
 import logging
 from collections import deque
-from pathlib import Path
-from typing import Optional
+from typing import Optional, Any
 
 import numpy as np
 import numpy.typing as npt
-import yaml
 
-from overcooked_simulator import ROOT_DIR
 from overcooked_simulator.counters import Counter
 from overcooked_simulator.game_items import Item, Plate
 
@@ -24,9 +21,11 @@ class Player:
     def __init__(
         self,
         name: str,
+        player_config: dict[str, Any],
         pos: Optional[npt.NDArray[float]] = None,
     ):
         self.name: str = name
+        self.player_config = player_config
         if pos is not None:
             self.pos: npt.NDArray[float] = np.array(pos, dtype=float)
         else:
@@ -34,12 +33,6 @@ class Player:
 
         self.holding: Optional[Item] = None
 
-        self.player_config_path: Path = Path(
-            ROOT_DIR / "game_content" / "player_config.yaml"
-        )
-        with open(self.player_config_path, "r") as file:
-            self.player_config = yaml.safe_load(file)
-
         self.radius: float = self.player_config["radius"]
         self.move_dist: int = self.player_config["move_dist"]
         self.interaction_range: int = self.player_config["interaction_range"]
-- 
GitLab