Source code for flatland.envs.step_utils.states
from enum import IntEnum
from dataclasses import dataclass
[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
malfunction_counter_complete : bool = False
earliest_departure_reached : bool = False
stop_action_given : bool = False
valid_movement_action_given : bool = False
target_reached : bool = False
movement_conflict : bool = False