diff --git a/overcooked_simulator/simulation_runner.py b/overcooked_simulator/simulation_runner.py index 846a56bcbb2e243c1df54ae287104c8eedacb90a..461724c1ece3c45bb3c0bcb4fed163a94030507f 100644 --- a/overcooked_simulator/simulation_runner.py +++ b/overcooked_simulator/simulation_runner.py @@ -23,7 +23,7 @@ class Simulator(Thread): self.step_frequency: int = frequency self.prefered_sleeptime_ns: float = 1e9 / self.step_frequency - self.env = env_class() + self.env: Environment = env_class() super().__init__() diff --git a/tests/test_start.py b/tests/test_start.py index 0cc343f7846358e7cffd35f6b4da72a5ba60e15f..b60b38a91c31467e69bf1f54a8193387a66be12b 100644 --- a/tests/test_start.py +++ b/tests/test_start.py @@ -3,6 +3,8 @@ from overcooked_simulator.player import Player from overcooked_simulator.overcooked_environment import Environment, Action import numpy as np import time +from overcooked_simulator.counters import Counter + def test_player_registration(): @@ -47,3 +49,25 @@ def test_simulator_frequency(): lower = frequency * running_time_seconds * (1-accepted_tolerance) upper = frequency * running_time_seconds * (1+accepted_tolerance) assert sim.env.c > lower and sim.env.c < upper, "Timing error in the environment at 1000hz" + + +def test_collision_detection(): + sim = Simulator(Environment, 200) + counter_pos = np.array([0, 100]) + counter = Counter(counter_pos) + sim.env.counters = [counter] + player1 = Player("p1", np.array([0, 0])) + player2 = Player("p2", np.array([0, 200])) + sim.register_player(player1) + sim.register_player(player2) # same player name + + sim.start() + assert not sim.env.detect_collision_counters(player1), "Should not collide" + assert not sim.env.detect_player_collision(player1), "Should not collide yet." + + player1.move_abs(counter_pos) + assert sim.env.detect_collision_counters(player1), "Player and counter at same pos." + player2.move_abs(counter_pos) + assert sim.env.detect_player_collision(player1), "Players at same pos." + + sim.stop()