示例#1
0
        public void GenerateMap()
        {
            ClearMap();
            tilemapScale = GameObject.FindGameObjectWithTag(Tags.TerrainTilemap).transform.localScale;

            tileHeight = Vector3.Distance(
                tilemap.CellToWorld(HexTools.GetAdjacentTileOffset(Vector3Int.zero, Cardinality.N)),
                tilemap.CellToWorld(new Vector3Int(0, 0, 0)));

            float diagonalDist = Vector3.Distance(
                tilemap.CellToWorld(Vector3Int.zero),
                tilemap.CellToWorld(HexTools.GetAdjacentTileOffset(Vector3Int.zero, Cardinality.NE)));

            tileWidth = Mathf.Sqrt(diagonalDist * diagonalDist - Mathf.Pow(tileHeight * .5f, 2)) * 4 / 3;

            tileDefinitions.terrainData.Sort();

            var regionDict = StageOne.RunGeneration(this);

            StageTwo.RunGeneration(this, regionDict);
            //if (useNoise)
            //	FillMapArea(Vector3Int.zero, initialViewRadius);
            //else
            //	RandomFillMap();


            //for (int i = 0; i < smoothSteps; ++i)
            //{
            //	if (!SmoothMap(Vector3Int.zero))
            //		break;
            //}

            //ProcessMap();
        }
示例#2
0
 public void NextGeneration()
 {
     StageTwo.NextGeneration();
 }