diff --git a/overcooked_simulator/utils.py b/overcooked_simulator/utils.py index ecfb5958a982c084ce46db849fa9568483fea3e5..d380799587a28f19c67345cf8a273662de020759 100644 --- a/overcooked_simulator/utils.py +++ b/overcooked_simulator/utils.py @@ -3,8 +3,27 @@ import os import sys from datetime import datetime from enum import Enum +from typing import TypedDict, Literal, Type, Any, Callable, Tuple from overcooked_simulator import ROOT_DIR +from overcooked_simulator.counters import PlateConfig +from overcooked_simulator.game_items import Item +from overcooked_simulator.order import OrderGeneration +from overcooked_simulator.player import PlayerConfig + + +class OrderConfig(TypedDict): + order_gen_class: Type[OrderGeneration] + order_gen_kwargs: dict[str, Any] + serving_not_ordered_meals: Callable[[Item], Tuple[bool, float]] + + +class EnvironmentConfig(TypedDict): + plates: PlateConfig + game: dict[Literal["time_limit_seconds"], int] + meals: dict[Literal["all"] | Literal["list"], bool | list[str]] + orders: OrderConfig + player_config: PlayerConfig def create_init_env_time():