package emasher.worldgeneration;
import cpw.mods.fml.common.IWorldGenerator;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenerator;
import net.minecraftforge.common.BiomeDictionary;
import java.util.ArrayList;
import java.util.Random;
public class WorldGenMine implements IWorldGenerator {
public ArrayList<WorldGenMinableWrap> lst = new ArrayList<WorldGenMinableWrap>();
public int chunk_X;
public int chunk_Z;
public Random randomGenerator;
public World currentWorld;
@Override
public void generate( Random random, int chunkX, int chunkZ, World world,
IChunkProvider chunkGenerator, IChunkProvider chunkProvider ) {
currentWorld = world;
chunk_X = chunkX * 16;
chunk_Z = chunkZ * 16;
randomGenerator = random;
for( WorldGenMinableWrap m : lst ) {
BiomeGenBase biome = world.getBiomeGenForCoords( chunkX * 16, chunkZ * 16 );
if( m.biomes.size() == 0 ) genStandardOre( m.num, m.gen, m.min, m.max );
else for( BiomeDictionary.Type t : m.biomes ) {
if( BiomeDictionary.isBiomeOfType( biome, t ) ) {
genStandardOre( m.num, m.gen, m.min, m.max );
break;
}
}
}
this.randomGenerator = null;
this.currentWorld = null;
}
private void genStandardOre( int par1, WorldGenerator par2WorldGenerator, int par3, int par4 ) {
//System.out.println("gen");
for( int l = 0; l < par1; ++l ) {
int i1 = this.chunk_X + this.randomGenerator.nextInt( 16 );
int j1 = this.randomGenerator.nextInt( par4 - par3 ) + par3;
int k1 = this.chunk_Z + this.randomGenerator.nextInt( 16 );
par2WorldGenerator.generate( this.currentWorld, this.randomGenerator, i1, j1, k1 );
}
}
public void add( WorldGenMinableWrap data ) {
lst.add( data );
}
}