private void produceHeightmap() {
		if (details)
			System.out.println("Producing overview. It can be found in: output/"+name+"/overviews.");
		
		int dimx = MyzoGEN.DIMENSION_X * chunksX;
		int dimy = MyzoGEN.DIMENSION_Y * chunksY;
		NoiseMap overviewnoise = null;
		try {
			overviewnoise = new NoiseMap(dimx, dimy);
			NoiseMapBuilderPlane builder = new NoiseMapBuilderPlane();
			builder.setSourceModule(noise);
			builder.setDestNoiseMap(overviewnoise);
            builder.setDestSize(dimx, dimy);
            builder.setBounds(0, chunksX * 4, 0, chunksY*4);
            builder.build();
		} catch (Exception e) {e.printStackTrace();}
		
		for (int ii = 0; ii < dimx; ii++) {
			for (int jj = 0; jj < dimy; jj++) {
				MyzoGEN.getOutput().setHeightAndFloor(new Point(ii, jj), Utils.roundToDecimals(overviewnoise.getValue(ii, jj), 4));
			}
		}
		
		ImageCafe image = null;
		try {
            RendererImage render = new RendererImage();
            image = new ImageCafe(dimx, dimy);
            render.setSourceNoiseMap(overviewnoise);
            render.setDestImage(image);
            render.render();
        } catch (ExceptionInvalidParam ex) {
            ex.printStackTrace();
        }
		
		BufferedImage im = Utils.imageCafeToBufferedImage(dimx, dimy, image);
		
		Utils.saveImage(im, "output/"+name+"/overviews/heightmap_overview.png");

        if (details)
        	System.out.println("Heightmap overview saved.");
	}