Example #1
0
    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);
    }