Hello. I'm new to modding, so do not judge strictly. I used this ore generator:
public class OreGen implements IWorldGenerator {
@Override
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) {
switch(world.provider.getDimension()) {
case -1:
runGenerator(ModBlocks.tutorialOre.getDefaultState(), 4 + random.nextInt(4), 24, 24, 128, BlockMatcher.forBlock(Blocks.NETHERRAK), world, random, chunkX, chunkZ);
break;
case 0:
runGenerator(ModBlocks.tutorialOre.getDefaultState(), 1 + random.nextInt(4), 8, 16, 64, BlockMatcher.forBlock(Blocks.STONE), world, random, chunkX, chunkZ);
break;
case 1:
runGenerator(ModBlocks.tutorialOre.getDefaultState(), 8, 24, 8, 128, BlockMatcher.forBlock(Blocks.END_STONE), world, random, chunkX, chunkZ);
break;
}
private void runGenerator(IBlockState blockToGen, int blockAmount, int chancesToSpawn, int minHeight, int maxHeight, Predicate<IBlockState> blockToReplace, World world, Random rand, int chunk_X, int chunk_Z){
if (minHeight < 0 || maxHeight > 256 || minHeight > maxHeight)
throw new IllegalArgumentException("Illegal Height Arguments for WorldGenerator");
WorldGenMinable generator = new WorldGenMinable(blockToGen, blockAmount, blockToReplace);
int heightdiff = maxHeight - minHeight +1;
for (int i=0; i<chancesToSpawn; i++){
int x = chunk_X * 16 +rand.nextInt(16);
int y = minHeight + rand.nextInt(heightdiff);
int z = chunk_Z * 16 + rand.nextInt(16);
generator.generate(world, rand, new BlockPos(x, y, z));
}
}
}
How can I make ore be generated only near the lava and in strict form (for example a cube or a ball)?