diff --git a/overcooked_simulator/counters.py b/overcooked_simulator/counters.py index 243f35886cb206dd8d7524a2bbbbf108e2f36064..3f2c5382760da04eb3d9d2091c1db2949822e45a 100644 --- a/overcooked_simulator/counters.py +++ b/overcooked_simulator/counters.py @@ -129,9 +129,11 @@ class ServingWindow(Counter): and "Plate" in item.name and item.content is not None ): - if isinstance(item.content, Meal): + if isinstance(item.content, Meal) and item.content.progressed_steps: return item.content.finished - elif item.content.name == "Salad": + + # TODO: Salad can be always be served. Check, if all needed parts are present. + if item.content.name in ["Salad"]: return True return False diff --git a/overcooked_simulator/game_content/item_info.yaml b/overcooked_simulator/game_content/item_info.yaml index a2df260836a62fed83a32d3e35d84fd78f74a96e..568929c1a1b8fc0504a30f401c488b139e962514 100644 --- a/overcooked_simulator/game_content/item_info.yaml +++ b/overcooked_simulator/game_content/item_info.yaml @@ -20,7 +20,7 @@ Burger: Salad: type: Meal - needs: [ Lettuce, Tomato ] + needs: [ ChoppedLettuce, ChoppedTomato ] equipment: Plate TomatoSoup: diff --git a/overcooked_simulator/game_content/layouts/basic.layout b/overcooked_simulator/game_content/layouts/basic.layout index da7352dd372718b26c43d5dce25a1c40c503cd01..285f5a54d41de23ce1e4ebc2bbf51249881131fd 100644 --- a/overcooked_simulator/game_content/layouts/basic.layout +++ b/overcooked_simulator/game_content/layouts/basic.layout @@ -1,11 +1,11 @@ -__________________ -_CCUCTCLCC________ -_C_______C________ -_C_______C________ -_W________________ -_C________________ -_P________________ -_C_______C________ -_C_______X________ -_CCBBCCCCC________ -__________________ +_________________ +_CCUCTCLCC_______ +_C_______C_______ +_C_______C_______ +_W_______________ +_C___A___________ +_P_______________ +_C_______C_______ +_C_______X_______ +_CCBBCCCCC_______ +_________________ diff --git a/overcooked_simulator/main.py b/overcooked_simulator/main.py index 6b1de7e3fe88970d4181d3c23d7c568a17b15948..d3cca5d832a9093259d30acadff4e0923ead2cc7 100644 --- a/overcooked_simulator/main.py +++ b/overcooked_simulator/main.py @@ -12,7 +12,7 @@ def main(): simulator = Simulator(ROOT_DIR / "game_content" / "layouts" / "basic.layout", 600) # simulator.register_player(Player(player_one_name, np.array([350.0, 200.0]))) # simulator.register_player(Player(player_two_name, np.array([100.0, 200.0]))) - number_player = 2 + number_player = 90 for i in range(number_player): simulator.register_player(Player(f"p{i}")) diff --git a/overcooked_simulator/pygame_gui/pygame_gui.py b/overcooked_simulator/pygame_gui/pygame_gui.py index e76c5b72be2b862f876c39ddea4ff719c0267e61..e72c4b40382af1c39fec03eb0126e617dcd344f2 100644 --- a/overcooked_simulator/pygame_gui/pygame_gui.py +++ b/overcooked_simulator/pygame_gui/pygame_gui.py @@ -69,13 +69,12 @@ class PyGameGUI: self.player_names = player_names self.player_keys = player_keys - assert len(self.player_names) == len( - self.player_keys - ), "Number of players and key sets should match." self.player_key_sets: list[PlayerKeySet] = [ PlayerKeySet(player_name, keys) - for player_name, keys in zip(self.player_names, self.player_keys) + for player_name, keys in zip( + self.player_names, self.player_keys[: len(self.player_names)] + ) ] # TODO cache loaded images? @@ -181,10 +180,6 @@ class PyGameGUI: pygame.draw.circle(self.screen, color2, pos, size) pygame.draw.circle(self.screen, BLUE, pos, size, width=1) - if SHOW_INTERACTION_RANGE: - pygame.draw.circle( - self.screen, BLUE, pos, player.interaction_range, width=1 - ) pygame.draw.circle(self.screen, colors[color1], pos, size // 2) pos = player.pos @@ -213,6 +208,11 @@ class PyGameGUI: rect.center = player.pos self.screen.blit(image, rect) + if SHOW_INTERACTION_RANGE: + pygame.draw.circle( + self.screen, BLUE, player.pos, player.interaction_range, width=1 + ) + if player.holding is not None: holding_item_pos = player.pos + (20 * player.facing_direction) self.draw_item(holding_item_pos, player.holding)