Пример #1
0
    void GenerateDetectRegions(Maze maze)
    {
        // Generate regions
        List <string> regionList = new List <string>();

        for (int i = 0; i < maze.mazeLength; i++)
        {
            for (int j = 0; j < maze.mazeWidth; j++)
            {
                TryUpdateLinearRegionForTile(0, maze.mazeTile[i, j], regionList, maze);
                TryUpdateLinearRegionForTile(1, maze.mazeTile[i, j], regionList, maze);
                TryUpdateRectRegionForTile(maze.mazeTile[i, j], regionList, maze);
            }
        }

        maze.detectRegions = regionList;

        // Assign regions to each tile
        foreach (Tile tile in maze.mazeTileList)
        {
            string tileAddress = MazeUTL.GetTileAddress(tile.X, tile.Z);
            foreach (string region in regionList)
            {
                if (MazeUTL.CheckRegionHasAddress(region, tileAddress))
                {
                    tile.detectRegions.Add(region);
                }
            }
        }
    }