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);
    }
Esempio n. 2
0
    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);
    }