public Mesh generateChunk(int chunkX, int chunkY) { // debugging instances only MeshService = GetComponent <MeshService>(); NoiseMapService = GetComponent <NoiseMapService>(); // debugging instances only GameObject chunk = loadChunk(chunkX, chunkY); MeshFilter meshFilter = chunk.GetComponent <MeshFilter>(); MeshRenderer textureRenderer = chunk.GetComponent <MeshRenderer>(); var mesh = meshFilter.mesh; // Noise Map Provider for all types of Noises float[,] noiseMap = NoiseMapService.getNoiseMap(chunkX, chunkY); // generate the new mesh meshFilter.sharedMesh = MeshService.GenerateMesh(mesh, NoiseMapService.mapSize, noiseMap); // destroy the previous mesh collider DestroyImmediate(chunk.GetComponent <MeshCollider>()); // update the mesh collider chunk.AddComponent <MeshCollider>(); // render mesh texture Texture2D meshTexture = NoiseMapService.getNoiseTexture(MeshService.heightCurve, noiseMap); textureRenderer.material.mainTexture = meshTexture; // notify other modules in the generator that the terrain is complete // EventBus.Manager.Broadcast(EventBus.Actions.GENERATE_WORLD_COMPLETE, chunkX, chunkY); return(mesh); }
void Start() { WorldEngine = GetComponent <WorldEngine>(); NoiseMapService = GetComponent <NoiseMapService>(); MeshService = GetComponent <MeshService>(); EventBus.Manager.Subscribe(EventBus.Actions.GENERATE_WORLD_COMPLETE, generateLakes); }
void Start() { // initialize services NoiseMapService = GetComponent <NoiseMapService>(); // initialize other services // subscribe to the generate world event EventBus.Manager.Subscribe(EventBus.Actions.GENERATE_WORLD, generateWorld); EventBus.Manager.Broadcast(EventBus.Actions.GENERATE_WORLD, "", ""); }
public void generateWorld(dynamic parameters, dynamic dummy) { // debugging instances only MeshService = GetComponent <MeshService>(); NoiseMapService = GetComponent <NoiseMapService>(); // debugging instances only ClearChunks(); generateChunk(0, 0); generateChunk(1, 0); // generateChunk(0, 1); // generateChunk(1, 1); var LakeService = GetComponent <LakeService>(); LakeService.generateLakes(0, 0); LakeService.generateLakes(1, 0); }