Source code for flatland.envs.step_utils.states

from dataclasses import dataclass
from enum import IntEnum


[docs] class TrainState(IntEnum): WAITING = 0 READY_TO_DEPART = 1 MALFUNCTION_OFF_MAP = 2 MOVING = 3 STOPPED = 4 MALFUNCTION = 5 DONE = 6
[docs] @classmethod def check_valid_state(cls, state): return state in cls._value2member_map_
[docs] def is_malfunction_state(self): return self.value in [self.MALFUNCTION, self.MALFUNCTION_OFF_MAP]
[docs] def is_off_map_state(self): return self.value in [self.WAITING, self.READY_TO_DEPART, self.MALFUNCTION_OFF_MAP]
[docs] def is_on_map_state(self): return self.value in [self.MOVING, self.STOPPED, self.MALFUNCTION]
[docs] @dataclass(repr=True) class StateTransitionSignals: in_malfunction: bool = False earliest_departure_reached: bool = False stop_action_given: bool = False movement_action_given: bool = False target_reached: bool = False movement_allowed: bool = False new_speed: float = 0.0