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

Merge branch '24-root-for-easy-file-loading' into 'main'

Resolve "ROOT for easy file loading"

Closes #24

See merge request scs/cocosy/overcooked-simulator!4
parents 31e71d9d 4a82e53e
No related branches found
No related tags found
1 merge request!4Resolve "ROOT for easy file loading"
Pipeline #41433 passed
......@@ -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
......@@ -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
......@@ -4,6 +4,7 @@ from pathlib import Path
import numpy as np
import pygame
from overcooked_simulator import ROOT_DIR
from overcooked_simulator.game_items import Tomato, Plate
from overcooked_simulator.player import Player
from overcooked_simulator.pygame_gui.pygame_gui import PyGameGUI
......@@ -11,7 +12,7 @@ from overcooked_simulator.simulation_runner import Simulator
def main():
simulator = Simulator(Path("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])))
......
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, Plate
from overcooked_simulator.game_items import Tomato
......@@ -51,10 +54,10 @@ class PyGameGUI:
"""Visualisation of the overcooked environmnent and reading keyboard inputs using pygame."""
def __init__(
self,
simulator: Simulator,
player_names: list[str],
player_keys: list[pygame.key],
self,
simulator: Simulator,
player_names: list[str],
player_keys: list[pygame.key],
):
self.FPS = 60
self.simulator = simulator
......@@ -75,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.
......@@ -167,11 +172,11 @@ class PyGameGUI:
if isinstance(item, Tomato):
if item.finished:
image = pygame.image.load(
"overcooked_simulator/pygame_gui/images/tomato_cut.png"
self.images_path / "tomato_cut.png"
).convert_alpha() # or .convert_alpha()
else:
image = pygame.image.load(
"overcooked_simulator/pygame_gui/images/tomato.png"
self.images_path / "tomato.png"
).convert_alpha() # or .convert_alpha()
rect = image.get_rect()
rect.center = pos
......
......@@ -2,19 +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
try:
with open("../overcooked_simulator/layouts/basic.layout", "r") as textfile:
pass
layouts_folder = Path("../overcooked_simulator/layouts")
except FileNotFoundError as e:
layouts_folder = Path("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():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment