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