Advertisement
Guest User

Untitled

a guest
Jun 18th, 2015
384
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.23 KB | None | 0 0
  1. public class CustomBlock extends Block{
  2.  
  3. private Item dropsOnHarvest;
  4. private int dropamountmax;
  5. private int maxharvestEXP = 2;
  6.  
  7.  
  8. public CustomBlock(Material material, String name, float hardness, float resistance, HarvestToolEnum harvesttool, HarvestLevelEnum harvestlevel, CreativeTabs creativetab, int dropamountmax, int minVienSize, int maxVienSize, int genChance, int minGenY, int maxGenY, Block[] generateIn, Block[] generateNear, int generateDistance, boolean generateInOverworld, boolean generateInNether, boolean generateInEnder)
  9. {
  10. super(material);
  11.  
  12. this.dropamountmax = dropamountmax;
  13. this.setUnlocalizedName(name);
  14. this.setHardness(hardness);
  15. this.setResistance(resistance);
  16. this.setStepSound(soundTypePiston);
  17. this.setHarvestLevel(harvesttool, harvestlevel);
  18. this.setCreativeTab(creativetab);
  19. this.dropsOnHarvest = Item.getItemFromBlock(this);
  20.  
  21. System.out.println("INITIALIZING BLOCK: " + name);
  22.  
  23. GameRegistry.registerBlock(this, name);
  24. GameRegistry.registerWorldGenerator(new CustomBlockGen(this, minVienSize, maxVienSize, genChance, minGenY, maxGenY, generateIn, generateNear, generateDistance, generateInOverworld, generateInNether, generateInEnder), 1);
  25. }
  26.  
  27. public CustomBlock(Material material, String name, float hardness, float resistance, HarvestToolEnum harvesttool, HarvestLevelEnum harvestlevel, CreativeTabs creativetab, int dropamountmax, int minVienSize, int maxVienSize, int genChance, int minGenY, int maxGenY, Block[] generateIn, boolean generateInOverworld, boolean generateInNether, boolean generateInEnder)
  28. {
  29. this(material, name, hardness, resistance, harvesttool, harvestlevel, creativetab, dropamountmax, minVienSize, maxVienSize, genChance, minGenY, maxGenY, generateIn, null, 1, generateInOverworld, generateInNether, generateInEnder);
  30. }
  31.  
  32. public CustomBlock(Material material, String name, float hardness, float resistance, HarvestToolEnum harvesttool, HarvestLevelEnum harvestlevel, CreativeTabs creativetab, int dropamountmax, int minVienSize, int maxVienSize, int genChance, int minGenY, int maxGenY, boolean generateInOverworld, boolean generateInNether, boolean generateInEnder)
  33. {
  34. this(material, name, hardness, resistance, harvesttool, harvestlevel, creativetab, dropamountmax, minVienSize, maxVienSize, genChance, minGenY, maxGenY, new Block[]{Blocks.stone}, generateInOverworld, generateInNether, generateInEnder);
  35. }
  36.  
  37. public CustomBlock(Material material, String name, float hardness, float resistance, HarvestToolEnum harvesttool, HarvestLevelEnum harvestlevel, CreativeTabs creativetab, int dropamountmax)
  38. {
  39. super(material);
  40.  
  41. this.dropamountmax = dropamountmax;
  42. this.setUnlocalizedName(name);
  43. this.setHardness(hardness);
  44. this.setResistance(resistance);
  45. this.setStepSound(soundTypePiston);
  46. this.setHarvestLevel(harvesttool, harvestlevel);
  47. this.setCreativeTab(creativetab);
  48. this.dropsOnHarvest = Item.getItemFromBlock(this);
  49.  
  50. GameRegistry.registerBlock(this, name);
  51. }
  52.  
  53. public void RegisterRenderer(String modelName)
  54. {
  55. System.out.println("REGISTERING BLOCK RENDERER: " + modelName);
  56.  
  57. Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(this), 0, new ModelResourceLocation(Core.MODID+":"+modelName, "inventory"));
  58. }
  59.  
  60. public void setHarvestLevel(HarvestToolEnum harvesttool, HarvestLevelEnum harvestlevel)
  61. {
  62. int level;
  63. String tool;
  64.  
  65. switch(harvesttool)
  66. {
  67. case PICKAXE:
  68. tool = "pickaxe";
  69. break;
  70. case SHOVEL:
  71. tool = "shovel";
  72. break;
  73. case AXE:
  74. tool = "axe";
  75. break;
  76. default:
  77. tool = "pickaxe";
  78. }
  79. switch(harvestlevel)
  80. {
  81. case WOOD:
  82. level = 0;
  83. break;
  84. case STONE:
  85. level = 1;
  86. break;
  87. case IRON:
  88. level = 2;
  89. break;
  90. case DIAMOND:
  91. level = 3;
  92. break;
  93. case GOLD:
  94. level = 0;
  95. break;
  96. case CUPRITE:
  97. level = 4;
  98. break;
  99. default:
  100. level = 0;
  101. }
  102. super.setHarvestLevel(tool, level);
  103. }
  104.  
  105. public static enum HarvestToolEnum
  106. {
  107. PICKAXE,
  108. SHOVEL,
  109. AXE;
  110. }
  111. public static enum HarvestLevelEnum
  112. {
  113. WOOD,
  114. STONE,
  115. IRON,
  116. DIAMOND,
  117. GOLD,
  118. CUPRITE;
  119. }
  120.  
  121.  
  122. public void setMaxHarvestEXP(int expAmount)
  123. {
  124. maxharvestEXP = expAmount;
  125. }
  126.  
  127. public void setDrops(Item drops)
  128. {
  129. this.dropsOnHarvest = drops;
  130. }
  131. public void setDrops(Block drops)
  132. {
  133. this.dropsOnHarvest = Item.getItemFromBlock(drops);
  134. }
  135.  
  136. public void setDropMaxAmount(int dropamount)
  137. {
  138. this.dropamountmax = dropamount;
  139. }
  140.  
  141. public Item getItemDropped(IBlockState state, Random rand, int fortune)
  142. {
  143. return this.dropsOnHarvest;
  144. }
  145.  
  146. public int quantityDropped(Random random)
  147. {
  148. int amount = random.nextInt(this.dropamountmax)+1;
  149. return amount;
  150. }
  151.  
  152. public int getExpDrop(IBlockAccess world, BlockPos pos, int fortune)
  153. {
  154. IBlockState state = world.getBlockState(pos);
  155. Random rand = world instanceof World ? ((World)world).rand : new Random();
  156. if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this))
  157. {
  158. return MathHelper.getRandomIntegerInRange(rand, 0, maxharvestEXP);
  159. }
  160. return 0;
  161. }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement