Пример #1
0
    private List <int[]> GetSurroundingAvailableCoords(LevelTemplate levelTemplate, int[] coords)
    {
        List <int[]> surroundingAvailableCoords = new List <int[]>();

        int[][] surroundingCoords = GetSurroundingCoords(coords);
        foreach (int[] surroundingCoord in surroundingCoords)
        {
            if (levelTemplate.IsAvailable(surroundingCoord))
            {
                surroundingAvailableCoords.Add(surroundingCoord);
            }
        }
        return(surroundingAvailableCoords);
    }
Пример #2
0
    private List <int[]> GetNextMainCoords(LevelTemplate levelTemplate, int[] mainHeadCoords)
    {
        List <int[]> availableCoords = new List <int[]>();

        // the potential coordinate has to have at least 3 available squares next to it
        // or else it can get stuck in a loop
        int[][] surroundingCoords = GetSurroundingCoords(mainHeadCoords);
        foreach (int[] coords in surroundingCoords)
        {
            if (levelTemplate.IsAvailable(coords) && GetSurroundingTypeCoords(levelTemplate, coords, RoomTemplate.RoomType.MAIN).Count < 2)
            {
                availableCoords.Add(coords);
            }
        }
        return(availableCoords);
    }