public void GenerateMap() { var startTime = DateTime.Now; var points = GetPoints(); var time = DateTime.Now; var voronoi = new Delaunay.Voronoi(points, null, new Rect(0, 0, meshSize, meshSize), relaxationIterations); //Debug.Log(string.Format("Voronoi Generated: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); time = DateTime.Now; heightMapSettings.noiseSettings.seed = seed; var heightMap = HeightMapGenerator.GenerateHeightMap(meshSize, meshSize, heightMapSettings, Vector2.zero); _heightMap = heightMap; //Debug.Log(string.Format("Heightmap Generated: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); time = DateTime.Now; var mapGraph = new MapGraph(voronoi, heightMap, snapDistance); _mapGraph = mapGraph; //Debug.Log(string.Format("Finished Generating Map Graph: {0:n0}ms with {1} nodes", DateTime.Now.Subtract(startTime).TotalMilliseconds, mapGraph.nodesByCenterPosition.Count)); time = DateTime.Now; MapGenerator.GenerateMap(mapGraph); //Debug.Log(string.Format("Map Generated: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); Vector3 born = MapGenerator.getBorn(); //Debug.Log(string.Format("Born: {0},{1},{2}", born.x,born.y,born.z)); if (previewType == PreviewType.HeightMap) { OnMeshDataReceived(MapMeshGenerator.GenerateMesh(mapGraph, heightMap, meshSize)); UpdateTexture(TextureGenerator.TextureFromHeightMap(heightMap)); } if (previewType == PreviewType.Map) { time = DateTime.Now; OnMeshDataReceived(MapMeshGenerator.GenerateMesh(mapGraph, heightMap, meshSize)); //Debug.Log(string.Format("Mesh Generated: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); time = DateTime.Now; var texture = MapTextureGenerator.GenerateTexture(mapGraph, meshSize, textureSize, colours, drawNodeBoundries, drawDelauneyTriangles, drawNodeCenters); //Debug.Log(string.Format("Texture Generated: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); UpdateTexture(texture); } Debug.Log(string.Format("Finished Generating World: {0:n0}ms with {1} nodes", DateTime.Now.Subtract(startTime).TotalMilliseconds, mapGraph.nodesByCenterPosition.Count)); }
public void GenerateMap() { var startTime = DateTime.Now; var points = GetPoints(); var time = DateTime.Now; var voronoi = new Delaunay.Voronoi(points, null, new Rect(0, 0, meshSize, meshSize)); Debug.Log(string.Format("Voronoi Generated: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); time = DateTime.Now; heightMapSettings.noiseSettings.seed = seed; var heightMap = HeightMapGenerator.GenerateHeightMap(meshSize, meshSize, heightMapSettings, Vector2.zero); Debug.Log(string.Format("Heightmap Generated: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); time = DateTime.Now; var mapGraph = new MapGraph(voronoi, heightMap, snapDistance); Debug.Log(string.Format("Finished Generating Map Graph: {0:n0}ms with {1} nodes", DateTime.Now.Subtract(time).TotalMilliseconds, mapGraph.nodesByCenterPosition.Count)); time = DateTime.Now; MapGenerator.GenerateMap(mapGraph); Debug.Log(string.Format("Map Generated: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); time = DateTime.Now; OnMeshDataReceived(MapMeshGenerator.GenerateMesh(mapGraph, meshSize)); Debug.Log(string.Format("Mesh Generated: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); time = DateTime.Now; var texture = MapTextureGenerator.GenerateTexture(mapGraph, meshSize, textureSize, colours, drawNodeBoundries, drawDelaunayTriangles); Debug.Log(string.Format("Texture Generated: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); UpdateTexture(texture); time = DateTime.Now; EnvironmentSpawner.Spawn(mapGraph, GameObject.Find("Environment").transform, environmentSettings, seed); Debug.Log(string.Format("Environment Spawned: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); time = DateTime.Now; AnimalSpawner.Spawn(mapGraph, GameObject.Find("Animals").transform, animalSettings, seed); Debug.Log(string.Format("Animals Spawned: {0:n0}ms", DateTime.Now.Subtract(time).TotalMilliseconds)); Debug.Log(string.Format("Finished Generating World: {0:n0}ms with {1} nodes", DateTime.Now.Subtract(startTime).TotalMilliseconds, mapGraph.nodesByCenterPosition.Count)); }