private Dictionary <Vector3Int, Direction> FindFreeSpacesAroundRoad(List <Vector3Int> roadPositions) { Dictionary <Vector3Int, Direction> freeSpaces = new Dictionary <Vector3Int, Direction>(); foreach (var position in roadPositions) { var neighbourDirections = PlacementHelper.FindNeighbour(position, roadPositions); foreach (Direction direction in Enum.GetValues(typeof(Direction))) { if (neighbourDirections.Contains(direction) == false) { var newPosition = position + PlacementHelper.GetOffsetFromDirection(direction); if (freeSpaces.ContainsKey(newPosition)) { continue; } freeSpaces.Add(newPosition, PlacementHelper.GetReverseDirection(direction)); } } } return(freeSpaces); }