Source code for flatland.core.grid.grid_resource_map

from typing import Tuple, Union, Set, Optional

from flatland.core.grid.grid_utils import Vector2D
from flatland.core.resource_map import ResourceMap


[docs] class GridResourceMap(ResourceMap[Tuple[Tuple[int, int], int], Union[Tuple[Tuple[int, int], int], Tuple[int, int]]]): def __init__(self, level_free_positions: Set[Vector2D] = None): self.level_free_positions = level_free_positions if self.level_free_positions is None: self.level_free_positions = set()
[docs] def get_resource(self, configuration: Optional[Tuple[Tuple[int, int], int]]) -> Optional[Tuple[int, int]]: if configuration is None: return None position, direction = configuration if position in self.level_free_positions: return position, direction % 2 return position