from marl_factory_grid.environment.groups.collection import Collection from marl_factory_grid.modules.doors import constants as d from marl_factory_grid.modules.doors.entitites import Door class Doors(Collection): symbol = d.SYMBOL_DOOR _entity = Door @property def var_has_position(self): return True def __init__(self, *args, **kwargs): super(Doors, self).__init__(*args, can_collide=True, **kwargs) def tick_doors(self, state): results = list() for door in self: tick_result = door.tick(state) if tick_result is not None: results.append(tick_result) # TODO: Should return a Result object, not a random dict. return results def reset(self): for door in self: door.reset()