Guest User

paxel

a guest
Oct 25th, 2016
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.66 KB | None | 0 0
  1. package dem.tutorialmod.init;
  2.  
  3. import java.util.Set;
  4.  
  5. import com.google.common.collect.Sets;
  6.  
  7. import net.minecraft.block.Block;
  8. import net.minecraft.block.material.Material;
  9. import net.minecraft.block.state.IBlockState;
  10. import net.minecraft.init.Blocks;
  11. import net.minecraft.item.Item;
  12. import net.minecraft.item.ItemStack;
  13. import net.minecraft.item.ItemTool;
  14.  
  15. public class TutorialItemPaxel extends ItemTool
  16. {
  17.  
  18. private static final Set<Block> EFFECTIVE_ON = Sets.newHashSet(new Block[] {Blocks.PLANKS, Blocks.BOOKSHELF, Blocks.LOG, Blocks.LOG2, Blocks.CHEST,
  19. Blocks.PUMPKIN, Blocks.LIT_PUMPKIN, Blocks.MELON_BLOCK, Blocks.LADDER, Blocks.WOODEN_BUTTON, Blocks.WOODEN_PRESSURE_PLATE, Blocks.ACTIVATOR_RAIL,
  20. Blocks.COAL_ORE, Blocks.COBBLESTONE, Blocks.DETECTOR_RAIL, Blocks.DIAMOND_BLOCK, Blocks.DIAMOND_ORE, Blocks.DOUBLE_STONE_SLAB, Blocks.GOLDEN_RAIL,
  21. Blocks.GOLD_BLOCK, Blocks.GOLD_ORE, Blocks.ICE, Blocks.IRON_BLOCK, Blocks.IRON_ORE, Blocks.LAPIS_BLOCK, Blocks.LAPIS_ORE, Blocks.LIT_REDSTONE_ORE,
  22. Blocks.MOSSY_COBBLESTONE, Blocks.NETHERRACK, Blocks.PACKED_ICE, Blocks.RAIL, Blocks.REDSTONE_ORE, Blocks.SANDSTONE, Blocks.RED_SANDSTONE,
  23. Blocks.STONE, Blocks.STONE_SLAB, Blocks.STONE_BUTTON, Blocks.STONE_PRESSURE_PLATE});
  24.  
  25. private static final float[] ATTACK_DAMAGES = new float[] {6.0F, 8.0F, 8.0F, 8.0F, 6.0F};
  26. private static final float[] ATTACK_SPEEDS = new float[] { -3.2F, -3.2F, -3.1F, -3.0F, -3.0F};
  27.  
  28.  
  29. public TutorialItemPaxel(ToolMaterial material, String name)
  30. {
  31. super(material, EFFECTIVE_ON);
  32. this.damageVsEntity = ATTACK_DAMAGES[material.ordinal()];
  33. this.attackSpeed = ATTACK_SPEEDS[material.ordinal()];
  34. this.setCreativeTab(TutorialTabs.tabTutorialTools);
  35. this.setUnlocalizedName(name);
  36. this.setRegistryName(name);
  37.  
  38. }
  39.  
  40. public TutorialItemPaxel(ToolMaterial material, float damage, float speed)
  41. {
  42. super(material, EFFECTIVE_ON);
  43. this.damageVsEntity = damage;
  44. this.attackSpeed = speed;
  45. }
  46.  
  47. public boolean canHarvestBlock(IBlockState blockIn)
  48. {
  49. Block block = blockIn.getBlock();
  50.  
  51. if (block == Blocks.OBSIDIAN)
  52. {
  53. return this.toolMaterial.getHarvestLevel() == 3;
  54. }
  55. else if (block != Blocks.DIAMOND_BLOCK && block != Blocks.DIAMOND_ORE)
  56. {
  57. if (block != Blocks.EMERALD_ORE && block != Blocks.EMERALD_BLOCK)
  58. {
  59. if (block != Blocks.GOLD_BLOCK && block != Blocks.GOLD_ORE)
  60. {
  61. if (block != Blocks.IRON_BLOCK && block != Blocks.IRON_ORE)
  62. {
  63. if (block != Blocks.LAPIS_BLOCK && block != Blocks.LAPIS_ORE)
  64. {
  65. if (block != Blocks.REDSTONE_ORE && block != Blocks.LIT_REDSTONE_ORE)
  66. {
  67. Material material = blockIn.getMaterial();
  68. return material == Material.ROCK ? true : (material == Material.IRON ? true : material == Material.ANVIL ? true : material == Material.WOOD ? true :
  69. material == Material.PLANTS ? true : material == Material.VINE);
  70. }
  71. else
  72. {
  73. return this.toolMaterial.getHarvestLevel() >= 2;
  74. }
  75. }
  76. else
  77. {
  78. return this.toolMaterial.getHarvestLevel() >= 1;
  79. }
  80. }
  81. else
  82. {
  83. return this.toolMaterial.getHarvestLevel() >= 1;
  84. }
  85. }
  86. else
  87. {
  88. return this.toolMaterial.getHarvestLevel() >= 2;
  89. }
  90. }
  91. else
  92. {
  93. return this.toolMaterial.getHarvestLevel() >= 2;
  94. }
  95. }
  96. else
  97. {
  98. return this.toolMaterial.getHarvestLevel() >= 2;
  99. }
  100. }
  101.  
  102. public float getStrVsBlock(ItemStack stack, IBlockState state)
  103. {
  104. Material material = state.getMaterial();
  105. return material != Material.WOOD && material != Material.PLANTS &&
  106. material != Material.VINE && material != Material.IRON &&
  107. material != Material.ANVIL && material != Material.ROCK ? super.getStrVsBlock(stack, state) : this.efficiencyOnProperMaterial;
  108. }
  109.  
  110.  
  111. /*public TutorialItemPaxel2(float attackDamageIn, float attackSpeedIn, ToolMaterial materialIn)
  112. {
  113. super(8.0F, -3.0F, materialIn, EFFECTIVE_ON);
  114.  
  115. }*/
  116.  
  117.  
  118.  
  119. }
Advertisement
Add Comment
Please, Sign In to add comment