package me.km.dimensions; import java.util.Random; import me.km.blocks.ModBlocks; import net.minecraft.block.state.IBlockState; import net.minecraft.init.Biomes; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.biome.Biome; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.IChunkGenerator; import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraftforge.fml.common.IWorldGenerator; public class ModWorldGeneration implements IWorldGenerator { @Override public void generate(Random r, int cX, int cZ, World w, IChunkGenerator cGen, IChunkProvider cPro) { Biome biome = w.getBiome(BlockPos.ORIGIN); if(biome != Biomes.HELL && biome != Biomes.SKY) { generateOverworld(r, cX, cZ, w, cGen, cPro); } } private void generateOverworld(Random random, int chunkX, int chunkZ, World w, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) { generateOre(ModBlocks.copperOre.getDefaultState(), w, random, chunkX << 4, chunkZ << 4, 0, 128, 9, 25); generateOre(ModBlocks.tinOre.getDefaultState(), w, random, chunkX << 4, chunkZ << 4, 0, 96, 8, 12); generateOre(ModBlocks.silverOre.getDefaultState(), w, random, chunkX << 4, chunkZ << 4, 0, 64, 8, 3); } private void generateOre(IBlockState ore, World world, Random random, int x, int z, int minY, int maxY, int size, int chances) { int deltaY = maxY - minY; BlockPos pos; WorldGenMinable generator; for (int i = 0; i < chances; i++) { // generates position in chunk pos = new BlockPos(x + random.nextInt(16), minY + random.nextInt(deltaY), z + random.nextInt(16)); generator = new WorldGenMinable(ore, size); generator.generate(world, random, pos); } } }