diff --git a/README.md b/README.md index e3a16ed85f3d6ad1f1871c2f008477c1fa1cd277..e266fce58b7a96956c513e436c9cd7a6eaa62986 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,12 @@ [API Docs](https://scs.pages.ub.uni-bielefeld.de/cocosy/overcooked-simulator) The real-time overcooked simulation for a cognitive cooperative system + +## Troubleshooting + +```cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)``` +if you have a conda environment: + +```bash +conda install -c conda-forge libstdcxx-ng +``` \ No newline at end of file diff --git a/overcooked_simulator/__init__.py b/overcooked_simulator/__init__.py index 84f54aa7f8699853279eb036fa4df6f9e071be89..7d983330e5810899308a2e0b5b06990a754af5f6 100644 --- a/overcooked_simulator/__init__.py +++ b/overcooked_simulator/__init__.py @@ -13,3 +13,7 @@ It contains of """ +import os +from pathlib import Path + +ROOT_DIR = Path(os.path.dirname(os.path.abspath(__file__))) # This is your Project Root diff --git a/overcooked_simulator/main.py b/overcooked_simulator/main.py index 8da89c091bdbd7334361024d598f9b63b055228a..b197caffaeb8ed59ea22a560e4d771a6514b2c9b 100644 --- a/overcooked_simulator/main.py +++ b/overcooked_simulator/main.py @@ -4,17 +4,15 @@ from pathlib import Path import numpy as np import pygame +from overcooked_simulator import ROOT_DIR from overcooked_simulator.game_items import Tomato from overcooked_simulator.player import Player from overcooked_simulator.pygame_gui.pygame_gui import PyGameGUI from overcooked_simulator.simulation_runner import Simulator -from root_definition import ROOT_DIR def main(): - simulator = Simulator( - Path(ROOT_DIR + "/overcooked_simulator/layouts/basic.layout"), 600 - ) + simulator = Simulator(Path(ROOT_DIR, "layouts", "basic.layout"), 600) player_one_name = "p1" player_two_name = "p2" simulator.register_player(Player(player_one_name, np.array([100, 200]))) diff --git a/overcooked_simulator/pygame_gui/pygame_gui.py b/overcooked_simulator/pygame_gui/pygame_gui.py index 8692b0da2b35e7bceca0723d78c772ada52d36e1..cc1bbef0298757f4820545613defe849bb48f551 100644 --- a/overcooked_simulator/pygame_gui/pygame_gui.py +++ b/overcooked_simulator/pygame_gui/pygame_gui.py @@ -1,12 +1,14 @@ +from pathlib import Path + import numpy as np import pygame +from overcooked_simulator import ROOT_DIR from overcooked_simulator.counters import CuttingBoard from overcooked_simulator.game_items import ProgressibleItem from overcooked_simulator.game_items import Tomato from overcooked_simulator.overcooked_environment import Action from overcooked_simulator.simulation_runner import Simulator -from root_definition import ROOT_DIR WHITE = (255, 255, 255) GREY = (190, 190, 190) @@ -76,6 +78,8 @@ class PyGameGUI: for player_name, keys in zip(self.player_names, self.player_keys) ] + self.images_path = Path(ROOT_DIR, "pygame_gui", "images") + def send_action(self, action: Action): """Sends an action to the game environment. @@ -168,11 +172,11 @@ class PyGameGUI: if isinstance(item, Tomato): if item.finished: image = pygame.image.load( - ROOT_DIR + "/overcooked_simulator/pygame_gui/images/tomato_cut.png" + self.images_path / "tomato_cut.png" ).convert_alpha() # or .convert_alpha() else: image = pygame.image.load( - ROOT_DIR + "/overcooked_simulator/pygame_gui/images/tomato.png" + self.images_path / "tomato.png" ).convert_alpha() # or .convert_alpha() rect = image.get_rect() rect.center = pos diff --git a/root_definition.py b/root_definition.py deleted file mode 100644 index 7e52d60a54ab03adea4906a946949e6a18a072b0..0000000000000000000000000000000000000000 --- a/root_definition.py +++ /dev/null @@ -1,3 +0,0 @@ -import os - -ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) # This is your Project Root diff --git a/tests/test_start.py b/tests/test_start.py index a3897da8180930b619aacca83334d0ab636c82b4..4a68443a8e9d0c8ecce876d5c976f4f59dba5aad 100644 --- a/tests/test_start.py +++ b/tests/test_start.py @@ -2,20 +2,24 @@ import time from pathlib import Path import numpy as np +import pytest +from overcooked_simulator import ROOT_DIR from overcooked_simulator.counters import Counter, CuttingBoard from overcooked_simulator.game_items import Tomato from overcooked_simulator.overcooked_environment import Action from overcooked_simulator.player import Player from overcooked_simulator.simulation_runner import Simulator -from root_definition import ROOT_DIR - -try: - with open(ROOT_DIR + "/overcooked_simulator/layouts/basic.layout", "r") as textfile: - pass - layouts_folder = Path(ROOT_DIR + "/overcooked_simulator/layouts") -except FileNotFoundError as e: - layouts_folder = Path(ROOT_DIR + "/overcooked_simulator/layouts") + +layouts_folder = Path(ROOT_DIR / "layouts") + + +@pytest.fixture(autouse=True) +def test_file_availability(): + assert layouts_folder.is_dir(), "layouts folder does not exists" + assert ( + layouts_folder / "basic.layout" + ).is_file(), "basic layouts file does not exists" def test_player_registration():