diff --git a/overcooked_simulator/counters.py b/overcooked_simulator/counters.py index 8ce066ab7e944d131dcc87255fc77b94a5680878..2923aa710939fb607fe564f13a5986b4aacb0bae 100644 --- a/overcooked_simulator/counters.py +++ b/overcooked_simulator/counters.py @@ -61,6 +61,7 @@ from overcooked_simulator.hooks import ( DROP_ON_SINK_ADDON, PICK_UP_FROM_SINK_ADDON, PLATE_OUT_OF_KITCHEN_TIME, + DROP_OFF_ON_COOKING_EQUIPMENT, ) if TYPE_CHECKING: @@ -197,6 +198,12 @@ class Counter: if self.occupied_by is None: self.occupied_by = item elif self.occupied_by.can_combine(item): + self.hook( + DROP_OFF_ON_COOKING_EQUIPMENT, + item=item, + equipment=self.occupied_by, + counter=self, + ) return self.occupied_by.combine(item) return None diff --git a/overcooked_simulator/game_content/environment_config_rl.yaml b/overcooked_simulator/game_content/environment_config_rl.yaml index 1b32b457a53a361932ac4bcd419f9ccf29fbfe8e..1d7d6ec178e14e2b69202624a5c44eb17709f407 100644 --- a/overcooked_simulator/game_content/environment_config_rl.yaml +++ b/overcooked_simulator/game_content/environment_config_rl.yaml @@ -123,7 +123,13 @@ extra_setup_functions: callback_class: !!python/name:overcooked_simulator.scores.ScoreViaHooks '' callback_class_kwargs: static_score: -1 - + combine: + func: !!python/name:overcooked_simulator.hooks.hooks_via_callback_class '' + kwargs: + hooks: [ drop_off_on_cooking_equipment ] + callback_class: !!python/name:overcooked_simulator.scores.ScoreViaHooks '' + callback_class_kwargs: + static_score: 20 # json_states: # func: !!python/name:overcooked_simulator.recording.class_recording_with_hooks '' # kwargs: diff --git a/overcooked_simulator/hooks.py b/overcooked_simulator/hooks.py index fc79f8e31ab90ae2d15f6b2a96bc599fb3c2fae7..503f087443485f6a0e3fa77ef6cad53f0139c1d7 100644 --- a/overcooked_simulator/hooks.py +++ b/overcooked_simulator/hooks.py @@ -107,6 +107,8 @@ ACTION_PUT = "action_put" ACTION_INTERACT_START = "action_interact_start" +DROP_OFF_ON_COOKING_EQUIPMENT = "drop_off_on_cooking_equipment" + class Hooks: def __init__(self, env):