plates: clean_plates: 2 dirty_plates: 0 plate_delay: [ 5, 10 ] # range of seconds until the dirty plate arrives. game: time_limit_seconds: 300 undo_dispenser_pickup: true meals: all: true # if all: false -> only orders for these meals are generated # TODO: what if this list is empty? list: - TomatoSoup - OnionSoup - Salad layout_chars: _: Free hash: Counter # # A: Agent pipe: Extinguisher P: PlateDispenser C: CuttingBoard X: Trashcan $: ServingWindow S: Sink +: SinkAddon at: Plate # @ just a clean plate on a counter U: Pot # with Stove Q: Pan # with Stove O: Peel # with Oven F: Basket # with DeepFryer T: Tomato N: Onion # oNioN L: Lettuce K: Potato # Kartoffel I: Fish # fIIIsh D: Dough E: Cheese # chEEEse G: Sausage # sausaGe B: Bun M: Meat question: Counter # ? mushroom ↓: Counter ^: Counter right: Counter left: Counter wave: Free # ~ Water minus: Free # - Ice dquote: Counter # " wall/truck p: Counter # second plate return ?? orders: order_gen_class: !!python/name:cooperative_cuisine.orders.RandomOrderGeneration '' # the class to that receives the kwargs. Should be a child class of OrderGeneration in orders.py order_gen_kwargs: order_duration_random_func: # how long should the orders be alive # 'random' library call with getattr, kwargs are passed to the function func: uniform kwargs: a: 40 b: 60 max_orders: 6 # maximum number of active orders at the same time num_start_meals: 2 # number of orders generated at the start of the environment sample_on_dur_random_func: # 'random' library call with getattr, kwargs are passed to the function func: uniform kwargs: a: 10 b: 20 sample_on_serving: false # Sample the delay for the next order only after a meal was served. serving_not_ordered_meals: true # can meals that are not ordered be served / dropped on the serving window player_config: radius: 0.4 player_speed_units_per_seconds: 6 interaction_range: 1.6 restricted_view: False view_angle: 70 view_range: 4 # in grid units, can be "null" effect_manager: FireManager: class: !!python/name:cooperative_cuisine.effect_manager.FireEffectManager '' kwargs: spreading_duration: [ 5, 10 ] fire_burns_ingredients_and_meals: true extra_setup_functions: # # --------------- Scoring --------------- orders: func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class '' kwargs: hooks: [ completed_order ] callback_class: !!python/name:cooperative_cuisine.scores.ScoreViaHooks '' callback_class_kwargs: static_score: 20 score_on_specific_kwarg: meal_name score_map: Burger: 15 OnionSoup: 10 Salad: 5 TomatoSoup: 10 not_ordered_meals: func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class '' kwargs: hooks: [ serve_not_ordered_meal ] callback_class: !!python/name:cooperative_cuisine.scores.ScoreViaHooks '' callback_class_kwargs: static_score: 2 trashcan_usages: func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class '' kwargs: hooks: [ trashcan_usage ] callback_class: !!python/name:cooperative_cuisine.scores.ScoreViaHooks '' callback_class_kwargs: static_score: -5 expired_orders: func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class '' kwargs: hooks: [ order_expired ] callback_class: !!python/name:cooperative_cuisine.scores.ScoreViaHooks '' callback_class_kwargs: static_score: -10 # # --------------- Recording --------------- # json_states: # func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class '' # kwargs: # hooks: [ json_state ] # callback_class: !!python/name:cooperative_cuisine.recording.FileRecorder '' # callback_class_kwargs: # log_path: USER_LOG_DIR/ENV_NAME/json_states.jsonl actions: func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class '' kwargs: hooks: [ pre_perform_action ] callback_class: !!python/name:cooperative_cuisine.recording.FileRecorder '' callback_class_kwargs: log_path: USER_LOG_DIR/ENV_NAME/LOG_RECORD_NAME.jsonl random_env_events: func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class '' kwargs: hooks: [ order_duration_sample, plate_out_of_kitchen_time ] callback_class: !!python/name:cooperative_cuisine.recording.FileRecorder '' callback_class_kwargs: log_path: USER_LOG_DIR/ENV_NAME/LOG_RECORD_NAME.jsonl add_hook_ref: true env_configs: func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class '' kwargs: hooks: [ env_initialized, item_info_config ] callback_class: !!python/name:cooperative_cuisine.recording.FileRecorder '' callback_class_kwargs: log_path: USER_LOG_DIR/ENV_NAME/LOG_RECORD_NAME.jsonl add_hook_ref: true # info_msg: # func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class '' # kwargs: # hooks: [ cutting_board_100 ] # callback_class: !!python/name:cooperative_cuisine.info_msg.InfoMsgManager '' # callback_class_kwargs: # msg: Glückwunsch du hast was geschnitten! # fire_msg: # func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class '' # kwargs: # hooks: [ new_fire ] # callback_class: !!python/name:cooperative_cuisine.info_msg.InfoMsgManager '' # callback_class_kwargs: # msg: Feuer, Feuer, Feuer # level: Warning