diff --git a/overcooked_simulator/hooks.py b/overcooked_simulator/hooks.py index bcdfbd7a0fa55ede58924940bc0edf118ae33233..93391eda3df8c8e834330698d214657516fa8300 100644 --- a/overcooked_simulator/hooks.py +++ b/overcooked_simulator/hooks.py @@ -1,4 +1,5 @@ from collections import defaultdict +from functools import partial from typing import Callable # TODO add player_id as kwarg to all hooks -> pass player id to all methods @@ -109,3 +110,34 @@ class Hooks: def print_hook_callback(text, env, **kwargs): print(env.env_time, text) + + +def add_dummy_callbacks(env): + env.register_callback_for_hook( + SERVE_NOT_ORDERED_MEAL, + partial( + print_hook_callback, + text="You tried to served a meal that was not ordered!", + ), + ) + env.register_callback_for_hook( + SINK_START_INTERACT, + partial( + print_hook_callback, + text="You started to use the Sink!", + ), + ) + env.register_callback_for_hook( + COMPLETED_ORDER, + partial( + print_hook_callback, + text="You completed an order!", + ), + ) + env.register_callback_for_hook( + TRASHCAN_USAGE, + partial( + print_hook_callback, + text="You used the trashcan!", + ), + ) diff --git a/overcooked_simulator/overcooked_environment.py b/overcooked_simulator/overcooked_environment.py index 326dcd5641a1ecf1087e33eb1fec667bc804fa38..719c79f797bc420518814db46cf4d0155c753ed7 100644 --- a/overcooked_simulator/overcooked_environment.py +++ b/overcooked_simulator/overcooked_environment.py @@ -8,7 +8,6 @@ import random import sys from datetime import timedelta, datetime from enum import Enum -from functools import partial from pathlib import Path from typing import Literal, TypedDict, Callable @@ -42,11 +41,7 @@ from overcooked_simulator.hooks import ( ACTION_ON_NOT_REACHABLE_COUNTER, ACTION_PUT, ACTION_INTERACT_START, - SERVE_NOT_ORDERED_MEAL, - print_hook_callback, - SINK_START_INTERACT, - COMPLETED_ORDER, - TRASHCAN_USAGE, + add_dummy_callbacks, ) from overcooked_simulator.order import ( OrderAndScoreManager, @@ -135,34 +130,7 @@ class Environment: # init callbacks here from config # test: - self.register_callback_for_hook( - SERVE_NOT_ORDERED_MEAL, - partial( - print_hook_callback, - text="You tried to served a meal that was not ordered!", - ), - ) - self.register_callback_for_hook( - SINK_START_INTERACT, - partial( - print_hook_callback, - text="You started to use the Sink!", - ), - ) - self.register_callback_for_hook( - COMPLETED_ORDER, - partial( - print_hook_callback, - text="You completed an order!", - ), - ) - self.register_callback_for_hook( - TRASHCAN_USAGE, - partial( - print_hook_callback, - text="You used the trashcan!", - ), - ) + add_dummy_callbacks(self) self.players: dict[str, Player] = {} """the player, keyed by their id/name.""" diff --git a/tests/test_start.py b/tests/test_start.py index cd4bb7abc7831770c0201ec45eb4b17ef119483f..b3f0b7eaff95c49543dc592a482b409a0f7cfe00 100644 --- a/tests/test_start.py +++ b/tests/test_start.py @@ -2,11 +2,11 @@ from datetime import timedelta import numpy as np import pytest -from overcooked_simulator.hook import Hooks from overcooked_simulator import ROOT_DIR from overcooked_simulator.counters import Counter, CuttingBoard from overcooked_simulator.game_items import Item, ItemInfo, ItemType +from overcooked_simulator.hooks import Hooks from overcooked_simulator.overcooked_environment import ( Action, Environment,