Guest User

Custom Generator

a guest
May 7th, 2016
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.30 KB | None | 0 0
  1. package com.wither.withermod;
  2.  
  3. import java.util.Random;
  4.  
  5. import net.minecraft.block.Block;
  6. import net.minecraft.util.BlockPos;
  7. import net.minecraft.world.World;
  8. import net.minecraft.world.chunk.IChunkProvider;
  9. import net.minecraftforge.fml.common.IWorldGenerator;
  10.  
  11. public class ModBlockGen implements IWorldGenerator{
  12.  
  13.     private ModBlock genblock;
  14.     private int GenMinVeinSize;
  15.     private int GenMaxVeinSize;
  16.     private int GenChance;
  17.     private int GenMinY;
  18.     private int GenMaxY;
  19.     private Block[] genIn;
  20.     private Block[] genNear;
  21.     private int genDistance;
  22.     private boolean genOverworld;
  23.     private boolean genNether;
  24.     private boolean genEnder;
  25.    
  26.    
  27.     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){
  28.        
  29.         this.genblock = block;
  30.         this.GenMaxVeinSize = minVeinSize;
  31.         this.GenMaxVeinSize = maxVeinSize;
  32.         this.GenChance = genChance;
  33.         this.GenMinY = minGenY;
  34.         this.GenMaxY = maxGenY;
  35.         this.genIn = generateIn;
  36.         this.genNear = generateNear;
  37.         this.genDistance = generateDistance;
  38.         this.genOverworld = generateInOverworld;
  39.         this.genNether = generateInNether;
  40.         this.genEnder = generateInEnder;
  41.     }
  42.    
  43.     public ModBlockGen(ModBlock block, int minVeinSize, int maxVeinSize, int genChance, int minGenY, int maxGenY, Block[] generateIn, int generateDistance, boolean generateInOverworld, boolean generateInNether, boolean generateInEnder){
  44.        
  45.         this(block, minVeinSize, maxVeinSize, genChance, minGenY, maxGenY, generateIn, null, 1, generateInOverworld, generateInNether, generateInEnder);
  46.     }
  47.  
  48.     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){
  49.        
  50.         int veinSize = minVeinSize + random.nextInt(maxVeinSize - minVeinSize);
  51.         int heightRange = maxY - minY;
  52.        
  53.         ModWorldGenMinable gen = new ModWorldGenMinable(block.getDefaultState(), veinSize, generateIn, this.genNear, this.genDistance);
  54.         for(int i = 0; i < chance; i++){
  55.             int xRand = chunkX * 16 + random.nextInt(16);
  56.             int yRand = random.nextInt(heightRange) + minY;
  57.             int zRand = chunkZ * 16 +  random.nextInt(16);
  58.             gen.generate(world, random, new BlockPos(xRand, yRand, zRand));
  59.         }
  60.     }
  61.     public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider){
  62.        
  63.         int currentDimension = world.provider.getDimensionId();
  64.        
  65.         if(currentDimension == -1 && genNether){
  66.            
  67.             generateOre((Block)this.genblock, world, random, chunkX, chunkZ, this.GenMinVeinSize, this.GenMaxVeinSize, this.GenChance, this.GenMinY, this.GenMaxY, currentDimension, this.genIn);
  68.         }
  69.         else if(currentDimension == 0 && genOverworld){
  70.            
  71.             generateOre((Block)this.genblock, world, random, chunkX, chunkZ, this.GenMinVeinSize, this.GenMaxVeinSize, this.GenChance, this.GenMinY, this.GenMaxY, currentDimension, this.genIn);
  72.         }
  73.         else if(currentDimension == 1 && genEnder){
  74.            
  75.             generateOre((Block)this.genblock, world, random, chunkX, chunkZ, this.GenMinVeinSize, this.GenMaxVeinSize, this.GenChance, this.GenMinY, this.GenMaxY, currentDimension, this.genIn);
  76.         }
  77.        
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment