예제 #1
0
    public void startBuilding()
    {
        //initialze grid
        for (int i = 0; i < gridX; i++)
        {
            for (int k = 0; k < gridY; k++)
            {
                for (int j = 0; j < gridZ; j++)
                {
                    grid[i, k, j].posibilitySpace.Clear();
                    if (grid[i, k, j].isPath)
                    {
                        grid[i, k, j].posibilitySpace.Add(floorGO);
                    }
                    else
                    {
                        grid[i, k, j].posibilitySpace.AddRange(modules);
                    }
                }
            }
        }
        mL.randomPooltmp.AddRange(mL.randomPool);

        /*for (int i = 0; i < gridX; i++)
         * {
         *  grid[i, 0, gridZ - 1].posibilitySpace.Clear();
         *  grid[i, 0, gridZ - 1].posibilitySpace.AddRange(walls);
         *
         *  grid[i, 0, 0].posibilitySpace.Clear();
         *  grid[i, 0, 0].posibilitySpace.AddRange(walls);
         * }
         * for (int j = 0; j < gridZ; j++)
         * {
         *  grid[gridX - 1, 0, j].posibilitySpace.Clear();
         *  grid[gridX - 1, 0, j].posibilitySpace.AddRange(walls);
         *
         *  grid[0, 0, j].posibilitySpace.Clear();
         *  grid[0, 0, j].posibilitySpace.AddRange(walls);
         * }*/


        mL.grid       = grid;
        noiseMap.grid = grid;
        noiseMap.InitNoiseWeights(gridX, gridY, gridZ);

        StartCoroutine(IterateAndCollapse());
    }