From 214384349e2c1159aeaa91593a52a45bd23873ad Mon Sep 17 00:00:00 2001 From: fheinrich <fheinrich@techfak.uni-bielefeld.de> Date: Fri, 15 Dec 2023 15:16:30 +0100 Subject: [PATCH] Fixes in Serving window --- overcooked_simulator/counters.py | 6 +++-- .../game_content/item_info.yaml | 2 +- .../game_content/layouts/basic.layout | 22 +++++++++---------- overcooked_simulator/main.py | 2 +- overcooked_simulator/pygame_gui/pygame_gui.py | 16 +++++++------- 5 files changed, 25 insertions(+), 23 deletions(-) diff --git a/overcooked_simulator/counters.py b/overcooked_simulator/counters.py index 243f3588..3f2c5382 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 a2df2608..568929c1 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 da7352dd..285f5a54 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 6b1de7e3..d3cca5d8 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 e76c5b72..e72c4b40 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) -- GitLab