summaryrefslogtreecommitdiff
path: root/src/main/java/net/tylermurphy/Minecraft/Chunk/Generator.java
blob: 395923e22ccd3a613a1c58af62284f1787dcd940 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package net.tylermurphy.Minecraft.Chunk;

import net.tylermurphy.Minecraft.Scene.World;

public class Generator {
	
	private static void generateLandscape(Chunk c) {
		for(int x=0;x<16;x++) {
			for(int z=0;z<16;z++) {
				
				int biome = (int) (PerlinNoise.getNoise(World.seed, c.gridX*16+x, c.gridZ*16+z, PerlinNoise.NoiseType.Cellular)*3)+3;
				biome = Math.max(1, Math.min(6, biome));
				
				int height1 = (int) (PerlinNoise.getNoise(World.seed, c.gridX*16+x, c.gridZ*16+z, PerlinNoise.NoiseType.PerlinFractal)*biome)+biome;
				int height2 = (int) (PerlinNoise.getNoise(World.seed+1, c.gridX*16+x, c.gridZ*16+z, PerlinNoise.NoiseType.Perlin)*biome)+biome;
				int height3 = (int) (PerlinNoise.getNoise(World.seed+2, c.gridX*16+x, c.gridZ*16+z, PerlinNoise.NoiseType.Simplex)*biome)+biome;
				
				int top = 90 + height1 + height2 - height3;
				
				for(int y=0;y<256;y++) {
					if(y<top) {
						c.cubes[x][y][z] = (byte)(biome);
					} else {
						c.cubes[x][y][z] = -1;
					}
				}
			}
		}
	}
	
	public static void generate(Chunk c) {
		generateLandscape(c);
	}
	
}