diff --git a/overcooked_simulator/game_items.py b/overcooked_simulator/game_items.py index 0b7c6d6db4f6a687dd587bed7a0bdfb733ecc9c7..94da1512d82c1f538a292359df63cfa3eccd0c73 100644 --- a/overcooked_simulator/game_items.py +++ b/overcooked_simulator/game_items.py @@ -234,7 +234,9 @@ class CookingEquipment(Item): def can_combine(self, other) -> bool: # already cooking or nothing to combine - if other is None: + if other is None or ( + isinstance(other, CookingEquipment) and not other.content_list + ): return False if any( @@ -260,6 +262,7 @@ class CookingEquipment(Item): self.content_list.extend(other.content_list) return_value = other other.reset_content() + other.reset() elif isinstance(other, list): self.content_list.extend(other) else: @@ -334,6 +337,7 @@ class CookingEquipment(Item): """Release the content when the player "picks up" the equipment with a plate in the hands""" content = self.content_list self.reset_content() + self.reset() return content @property diff --git a/overcooked_simulator/game_server.py b/overcooked_simulator/game_server.py index 1848a5329552dc8e0f733fcc3b330fd78ada83dd..d2735921fb0296276a8edbab50c79108672dc7c7 100644 --- a/overcooked_simulator/game_server.py +++ b/overcooked_simulator/game_server.py @@ -725,6 +725,7 @@ async def websocket_player_endpoint(websocket: WebSocket, client_id: str): def main(host: str, port: int, manager_ids: list[str]): + setup_logging() loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) environment_handler.extend_allowed_manager(manager_ids) diff --git a/overcooked_simulator/player.py b/overcooked_simulator/player.py index e2284ae0658f82064cfb690dc6bb0629fcb6ae21..036f83b21842465f49e785efa8be2e35dfedb944 100644 --- a/overcooked_simulator/player.py +++ b/overcooked_simulator/player.py @@ -16,7 +16,7 @@ import numpy as np import numpy.typing as npt from overcooked_simulator.counters import Counter -from overcooked_simulator.game_items import Item, Plate, ItemType +from overcooked_simulator.game_items import Item, ItemType from overcooked_simulator.state_representation import PlayerState log = logging.getLogger(__name__) @@ -165,8 +165,8 @@ class Player: log.debug( f"Self: {self.holding}, {counter.__class__.__name__}: {counter.occupied_by}" ) - if isinstance(self.holding, Plate): - log.debug(self.holding.clean) + # if isinstance(self.holding, Plate): + # log.debug(self.holding.clean) def perform_interact_start(self, counter: Counter): """Starts an interaction with the counter. Should be called for a