Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.wither.withermod;
- import java.util.Random;
- import net.minecraft.block.Block;
- import net.minecraft.util.BlockPos;
- import net.minecraft.world.World;
- import net.minecraft.world.chunk.IChunkProvider;
- import net.minecraftforge.fml.common.IWorldGenerator;
- public class ModBlockGen implements IWorldGenerator{
- private ModBlock genblock;
- private int GenMinVeinSize;
- private int GenMaxVeinSize;
- private int GenChance;
- private int GenMinY;
- private int GenMaxY;
- private Block[] genIn;
- private Block[] genNear;
- private int genDistance;
- private boolean genOverworld;
- private boolean genNether;
- private boolean genEnder;
- public ModBlockGen(ModBlock block, int minVeinSize, int maxVeinSize, int genChance, int minGenY, int maxGenY, Block[] generateIn, Block[] generateNear, int generateDistance, boolean generateInOverworld, boolean generateInNether, boolean generateInEnder){
- this.genblock = block;
- this.GenMaxVeinSize = minVeinSize;
- this.GenMaxVeinSize = maxVeinSize;
- this.GenChance = genChance;
- this.GenMinY = minGenY;
- this.GenMaxY = maxGenY;
- this.genIn = generateIn;
- this.genNear = generateNear;
- this.genDistance = generateDistance;
- this.genOverworld = generateInOverworld;
- this.genNether = generateInNether;
- this.genEnder = generateInEnder;
- }
- public ModBlockGen(ModBlock block, int minVeinSize, int maxVeinSize, int genChance, int minGenY, int maxGenY, Block[] generateIn, int generateDistance, boolean generateInOverworld, boolean generateInNether, boolean generateInEnder){
- this(block, minVeinSize, maxVeinSize, genChance, minGenY, maxGenY, generateIn, null, 1, generateInOverworld, generateInNether, generateInEnder);
- }
- public void generateOre(Block block, World world, Random random, int chunkX, int ChunkY, int chunkZ, int minVeinSize, int maxVeinSize, int chance, int minY, int maxY, Block[] generateIn){
- int veinSize = minVeinSize + random.nextInt(maxVeinSize - minVeinSize);
- int heightRange = maxY - minY;
- ModWorldGenMinable gen = new ModWorldGenMinable(block.getDefaultState(), veinSize, generateIn, this.genNear, this.genDistance);
- for(int i = 0; i < chance; i++){
- int xRand = chunkX * 16 + random.nextInt(16);
- int yRand = random.nextInt(heightRange) + minY;
- int zRand = chunkZ * 16 + random.nextInt(16);
- gen.generate(world, random, new BlockPos(xRand, yRand, zRand));
- }
- }
- public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider){
- int currentDimension = world.provider.getDimensionId();
- if(currentDimension == -1 && genNether){
- generateOre((Block)this.genblock, world, random, chunkX, chunkZ, this.GenMinVeinSize, this.GenMaxVeinSize, this.GenChance, this.GenMinY, this.GenMaxY, currentDimension, this.genIn);
- }
- else if(currentDimension == 0 && genOverworld){
- generateOre((Block)this.genblock, world, random, chunkX, chunkZ, this.GenMinVeinSize, this.GenMaxVeinSize, this.GenChance, this.GenMinY, this.GenMaxY, currentDimension, this.genIn);
- }
- else if(currentDimension == 1 && genEnder){
- generateOre((Block)this.genblock, world, random, chunkX, chunkZ, this.GenMinVeinSize, this.GenMaxVeinSize, this.GenChance, this.GenMinY, this.GenMaxY, currentDimension, this.genIn);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment