Guest User

Custom Block Gen

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