public World(int width, int height, long seed) {
		this.width = width;
		this.height = height;

		map = new int[this.width][this.height];
		
		//We have 10 layers of metadata
		meta = new int[this.width][this.height][10];
		
		Random rand = new Random();
		
		if(seed == 0) seed = rand.nextLong();
		this.seed = seed;
		
		rand.setSeed(seed);

		System.out.println("Generating World");
		
		WorldGen[] worldBrushes = new WorldGen[] { 
				new WorldGenForest(), 
				new WorldGenWheat(),  
				new WorldGenTest() 
		};
		
		long worldStartTime = System.nanoTime();
		for(WorldGen brush : worldBrushes) {
			
			System.out.println(" - Generating Brush \"" + brush.getName() + "\"");
			
			long stime = System.nanoTime();

			brush.generate(this, rand);
			
			long dtime = System.nanoTime() - stime;
			if(dtime > 1e9/2)
				System.out.println(" -- Slow Generation!");
			
			System.out.println(" -- Done in " + ((double)dtime / (double)1e9) + "s");
			
		}
		
		map[10][10] = World.settlement.id;
		
		System.out.println("World created with seed " + seed + " in " + ((double)(System.nanoTime() - worldStartTime) / 1e9) + "s");
	}