public void generate(Land[][] world, int heightScale) {
		// seed for the world
		seed = (float) (System.nanoTime()/10000000);
		this.world = world;
		
		// grid of results for the noise algorithm
		functionResults = new float[(int) (world.length/xFreq)+4][(int) (world[0].length/zFreq)+4]; // adding 4 to create buffer on edges
		int x = 0;
		int z = 0;
		
		// populate the results array
		for(int i = 0; i<functionResults.length; i++){
			for(int j = 0; j<functionResults[0].length; j++){
				functionResults[i][j] = function(x-2*xFreq,z-2*zFreq); // making use of buffer
				z+=zFreq;
			}
			x+=xFreq;
		}
		// interpolate the algorithm results and populate the world
		for(int i = 0; i < world.length; i++){
			for(int j = 0; j<world[0].length; j++){
				world[i][j] = new Land(heightScale*interpolate(i,j),i,j);
			}
		}
	}