aboutsummaryrefslogtreecommitdiff
path: root/main/java/gregtech/common/tools
diff options
context:
space:
mode:
authorBlood Asp <Blood@Asp>2015-04-23 18:14:22 +0200
committerBlood Asp <Blood@Asp>2015-04-23 18:14:22 +0200
commit7224ac4299098c70efae9dbd04c50a97e3f5f583 (patch)
treec739bb7d176a9735bc8e598063918023de32330c /main/java/gregtech/common/tools
downloadGT5-Unofficial-7224ac4299098c70efae9dbd04c50a97e3f5f583.tar.gz
GT5-Unofficial-7224ac4299098c70efae9dbd04c50a97e3f5f583.tar.bz2
GT5-Unofficial-7224ac4299098c70efae9dbd04c50a97e3f5f583.zip
Initial Commit
Diffstat (limited to 'main/java/gregtech/common/tools')
-rw-r--r--main/java/gregtech/common/tools/GT_Tool.java176
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Axe.java152
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_BranchCutter.java106
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java105
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java87
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java61
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java111
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java61
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Crowbar.java152
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Drill_HV.java63
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Drill_LV.java137
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Drill_MV.java63
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_File.java130
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_HardHammer.java188
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Hoe.java134
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_JackHammer.java120
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Knife.java65
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Mortar.java130
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Pickaxe.java133
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Plow.java87
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Plunger.java96
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_RollingPin.java71
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Saw.java148
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Scoop.java140
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Screwdriver.java150
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java38
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Sense.java86
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Shovel.java122
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_SoftHammer.java141
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Sword.java128
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java139
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_WireCutter.java125
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Wrench.java150
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java73
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java80
-rw-r--r--main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java73
36 files changed, 4021 insertions, 0 deletions
diff --git a/main/java/gregtech/common/tools/GT_Tool.java b/main/java/gregtech/common/tools/GT_Tool.java
new file mode 100644
index 0000000000..7af4bc3837
--- /dev/null
+++ b/main/java/gregtech/common/tools/GT_Tool.java
@@ -0,0 +1,176 @@
+/* 1: */ package gregtech.common.tools;
+/* 2: */
+/* 3: */ import gregtech.api.GregTech_API;
+/* 4: */ import gregtech.api.damagesources.GT_DamageSources;
+/* 5: */ import gregtech.api.interfaces.IToolStats;
+/* 6: */ import gregtech.api.items.GT_MetaGenerated_Tool;
+
+/* 7: */ import java.util.List;
+/* 8: */ import java.util.Map;
+
+/* 9: */ import net.minecraft.block.Block;
+/* 10: */ import net.minecraft.enchantment.Enchantment;
+/* 11: */ import net.minecraft.entity.Entity;
+/* 12: */ import net.minecraft.entity.EntityLivingBase;
+/* 13: */ import net.minecraft.entity.player.EntityPlayer;
+/* 14: */ import net.minecraft.item.ItemStack;
+/* 15: */ import net.minecraft.stats.AchievementList;
+/* 16: */ import net.minecraft.util.DamageSource;
+/* 17: */ import net.minecraft.util.EntityDamageSource;
+/* 18: */ import net.minecraft.util.IChatComponent;
+import net.minecraftforge.event.world.BlockEvent;
+/* 19: */ import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent;
+/* 20: */
+/* 21: */ public abstract class GT_Tool
+/* 22: */ implements IToolStats
+/* 23: */ {
+/* 24: 23 */ public static final Enchantment[] FORTUNE_ENCHANTMENT = { Enchantment.fortune };
+/* 25: 24 */ public static final Enchantment[] LOOTING_ENCHANTMENT = { Enchantment.looting };
+/* 26: 25 */ public static final Enchantment[] ZERO_ENCHANTMENTS = new Enchantment[0];
+/* 27: 26 */ public static final int[] ZERO_ENCHANTMENT_LEVELS = new int[0];
+/* 28: */
+/* 29: */ public int getToolDamagePerBlockBreak()
+/* 30: */ {
+/* 31: 30 */ return 100;
+/* 32: */ }
+/* 33: */
+/* 34: */ public int getToolDamagePerDropConversion()
+/* 35: */ {
+/* 36: 35 */ return 100;
+/* 37: */ }
+/* 38: */
+/* 39: */ public int getToolDamagePerContainerCraft()
+/* 40: */ {
+/* 41: 40 */ return 800;
+/* 42: */ }
+/* 43: */
+/* 44: */ public int getToolDamagePerEntityAttack()
+/* 45: */ {
+/* 46: 45 */ return 200;
+/* 47: */ }
+/* 48: */
+/* 49: */ public float getSpeedMultiplier()
+/* 50: */ {
+/* 51: 50 */ return 1.0F;
+/* 52: */ }
+/* 53: */
+/* 54: */ public float getMaxDurabilityMultiplier()
+/* 55: */ {
+/* 56: 55 */ return 1.0F;
+/* 57: */ }
+/* 58: */
+/* 59: */ public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity)
+/* 60: */ {
+/* 61: 60 */ return aOriginalHurtResistance;
+/* 62: */ }
+/* 63: */
+/* 64: */ public String getMiningSound()
+/* 65: */ {
+/* 66: 65 */ return null;
+/* 67: */ }
+/* 68: */
+/* 69: */ public String getCraftingSound()
+/* 70: */ {
+/* 71: 70 */ return null;
+/* 72: */ }
+/* 73: */
+/* 74: */ public String getEntityHitSound()
+/* 75: */ {
+/* 76: 75 */ return null;
+/* 77: */ }
+/* 78: */
+/* 79: */ public String getBreakingSound()
+/* 80: */ {
+/* 81: 80 */ return (String)GregTech_API.sSoundList.get(Integer.valueOf(0));
+/* 82: */ }
+/* 83: */
+/* 84: */ public int getBaseQuality()
+/* 85: */ {
+/* 86: 85 */ return 0;
+/* 87: */ }
+/* 88: */
+/* 89: */ public boolean canBlock()
+/* 90: */ {
+/* 91: 90 */ return false;
+/* 92: */ }
+/* 93: */
+/* 94: */ public boolean isCrowbar()
+/* 95: */ {
+/* 96: 95 */ return false;
+/* 97: */ }
+/* 98: */
+/* 99: */ public boolean isGrafter()
+/* 100: */ {
+/* 101:100 */ return false;
+/* 102: */ }
+/* 103: */
+/* 104: */ public boolean isWeapon()
+/* 105: */ {
+/* 106:105 */ return false;
+/* 107: */ }
+/* 108: */
+/* 109: */ public boolean isRangedWeapon()
+/* 110: */ {
+/* 111:110 */ return false;
+/* 112: */ }
+/* 113: */
+/* 114: */ public boolean isMiningTool()
+/* 115: */ {
+/* 116:115 */ return true;
+/* 117: */ }
+/* 118: */
+/* 119: */ public DamageSource getDamageSource(EntityLivingBase aPlayer, Entity aEntity)
+/* 120: */ {
+/* 121:120 */ return GT_DamageSources.getCombatDamage((aPlayer instanceof EntityPlayer) ? "player" : "mob", aPlayer, (aEntity instanceof EntityLivingBase) ? getDeathMessage(aPlayer, (EntityLivingBase)aEntity) : null);
+/* 122: */ }
+/* 123: */
+/* 124: */ public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity)
+/* 125: */ {
+/* 126:124 */ return new EntityDamageSource((aPlayer instanceof EntityPlayer) ? "player" : "mob", aPlayer).func_151519_b(aEntity);
+/* 127: */ }
+/* 128: */
+/* 129: */ public int convertBlockDrops(List<ItemStack> aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent)
+/* 130: */ {
+/* 131:129 */ return 0;
+/* 132: */ }
+/* 133: */
+/* 134: */ public ItemStack getBrokenItem(ItemStack aStack)
+/* 135: */ {
+/* 136:134 */ return null;
+/* 137: */ }
+/* 138: */
+/* 139: */ public Enchantment[] getEnchantments(ItemStack aStack)
+/* 140: */ {
+/* 141:139 */ return ZERO_ENCHANTMENTS;
+/* 142: */ }
+/* 143: */
+/* 144: */ public int[] getEnchantmentLevels(ItemStack aStack)
+/* 145: */ {
+/* 146:144 */ return ZERO_ENCHANTMENT_LEVELS;
+/* 147: */ }
+/* 148: */
+/* 149: */ public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer)
+/* 150: */ {
+/* 151:149 */ aPlayer.triggerAchievement(AchievementList.openInventory);
+/* 152:150 */ aPlayer.triggerAchievement(AchievementList.mineWood);
+/* 153:151 */ aPlayer.triggerAchievement(AchievementList.buildWorkBench);
+/* 154: */ }
+/* 155: */
+/* 156: */ public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {}
+/* 157: */
+/* 158: */ public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer)
+/* 159: */ {
+/* 160:161 */ return aOriginalDamage;
+/* 161: */ }
+/* 162: */
+/* 163: */ public float getMagicDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer)
+/* 164: */ {
+/* 165:166 */ return aOriginalDamage;
+/* 166: */ }
+/* 167: */ }
+
+
+/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar
+ * Qualified Name: gregtech.common.tools.GT_Tool
+ * JD-Core Version: 0.7.0.1
+ */ \ No newline at end of file
diff --git a/main/java/gregtech/common/tools/GT_Tool_Axe.java b/main/java/gregtech/common/tools/GT_Tool_Axe.java
new file mode 100644
index 0000000000..5f07ded782
--- /dev/null
+++ b/main/java/gregtech/common/tools/GT_Tool_Axe.java
@@ -0,0 +1,152 @@
+/* 1: */ package gregtech.common.tools;
+/* 2: */
+/* 3: */ import gregtech.api.GregTech_API;
+/* 4: */ import gregtech.api.enums.Materials;
+/* 5: */ import gregtech.api.enums.OrePrefixes;
+/* 6: */ import gregtech.api.interfaces.IIconContainer;
+/* 7: */ import gregtech.api.items.GT_MetaGenerated_Tool;
+
+/* 8: */ import java.util.List;
+/* 9: */ import java.util.Map;
+
+/* 10: */ import net.minecraft.block.Block;
+/* 11: */ import net.minecraft.block.material.Material;
+/* 12: */ import net.minecraft.entity.EntityLivingBase;
+/* 13: */ import net.minecraft.entity.player.EntityPlayer;
+/* 14: */ import net.minecraft.item.ItemStack;
+/* 15: */ import net.minecraft.util.ChatComponentText;
+/* 16: */ import net.minecraft.util.EnumChatFormatting;
+/* 17: */ import net.minecraft.util.IChatComponent;
+/* 18: */ import net.minecraft.world.World;
+import net.minecraftforge.event.world.BlockEvent;
+/* 19: */ import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent;
+/* 20: */
+/* 21: */ public class GT_Tool_Axe
+/* 22: */ extends GT_Tool
+/* 23: */ {
+/* 24: */ public int getToolDamagePerBlockBreak()
+/* 25: */ {
+/* 26: 23 */ return 50;
+/* 27: */ }
+/* 28: */
+/* 29: */ public int getToolDamagePerDropConversion()
+/* 30: */ {
+/* 31: 28 */ return 100;
+/* 32: */ }
+/* 33: */
+/* 34: */ public int getToolDamagePerContainerCraft()
+/* 35: */ {
+/* 36: 33 */ return 100;
+/* 37: */ }
+/* 38: */
+/* 39: */ public int getToolDamagePerEntityAttack()
+/* 40: */ {
+/* 41: 38 */ return 200;
+/* 42: */ }
+/* 43: */
+/* 44: */ public int getBaseQuality()
+/* 45: */ {
+/* 46: 43 */ return 0;
+/* 47: */ }
+/* 48: */
+/* 49: */ public float getBaseDamage()
+/* 50: */ {
+/* 51: 48 */ return 3.0F;
+/* 52: */ }
+/* 53: */
+/* 54: */ public float getSpeedMultiplier()
+/* 55: */ {
+/* 56: 53 */ return 2.0F;
+/* 57: */ }
+/* 58: */
+/* 59: */ public float getMaxDurabilityMultiplier()
+/* 60: */ {
+/* 61: 58 */ return 1.0F;
+/* 62: */ }
+/* 63: */
+/* 64: */ public String getCraftingSound()
+/* 65: */ {
+/* 66: 63 */ return null;
+/* 67: */ }
+/* 68: */
+/* 69: */ public String getEntityHitSound()
+/* 70: */ {
+/* 71: 68 */ return null;
+/* 72: */ }
+/* 73: */
+/* 74: */ public String getBreakingSound()
+/* 75: */ {
+/* 76: 73 */ return (String)GregTech_API.sSoundList.get(Integer.valueOf(0));
+/* 77: */ }
+/* 78: */
+/* 79: */ public String getMiningSound()
+/* 80: */ {
+/* 81: 78 */ return null;
+/* 82: */ }
+/* 83: */
+/* 84: */ public boolean canBlock()
+/* 85: */ {
+/* 86: 83 */ return false;
+/* 87: */ }
+/* 88: */
+/* 89: */ public boolean isCrowbar()
+/* 90: */ {
+/* 91: 88 */ return false;
+/* 92: */ }
+/* 93: */
+/* 94: */ public boolean isWeapon()
+/* 95: */ {
+/* 96: 93 */ return true;
+/* 97: */ }
+/* 98: */
+/* 99: */ public boolean isMinableBlock(Block aBlock, byte aMetaData)
+/* 100: */ {
+/* 101: 98 */ String tTool = aBlock.getHarvestTool(aMetaData);
+/* 102: 99 */ return ((tTool != null) && (tTool.equals("axe"))) || (aBlock.getMaterial() == Material.wood);
+/* 103: */ }
+/* 104: */
+/* 105: */ public int convertBlockDrops(List<ItemStack> aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent)
+/* 106: */ {
+/* 107:104 */ int rAmount = 0;
+/* 108:105 */ if ((GregTech_API.sTimber) && (!aPlayer.isSneaking()) && (OrePrefixes.log.contains(new ItemStack(aBlock, 1, aMetaData))))
+/* 109: */ {
+/* 110:106 */ int tY = aY + 1;
+/* 111:106 */ for (int tH = aPlayer.worldObj.getHeight(); tY < tH; tY++)
+/* 112: */ {
+/* 113:107 */ if ((aPlayer.worldObj.getBlock(aX, tY, aZ) != aBlock) || (!aPlayer.worldObj.func_147480_a(aX, tY, aZ, true))) {
+/* 114: */ break;
+/* 115: */ }
+/* 116:107 */ rAmount++;
+/* 117: */ }
+/* 118: */ }
+/* 119:110 */ return rAmount;
+/* 120: */ }
+/* 121: */
+/* 122: */ public ItemStack getBrokenItem(ItemStack aStack)
+/* 123: */ {
+/* 124:115 */ return null;
+/* 125: */ }
+/* 126: */
+/* 127: */ public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack)
+/* 128: */ {
+/* 129:120 */ return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[OrePrefixes.toolHeadAxe.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[OrePrefixes.stick.mTextureIndex];
+/* 130: */ }
+/* 131: */
+/* 132: */ public short[] getRGBa(boolean aIsToolHead, ItemStack aStack)
+/* 133: */ {
+/* 134:125 */ return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa;
+/* 135: */ }
+/* 136: */
+/* 137: */ public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {}
+/* 138: */
+/* 139: */ public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity)
+/* 140: */ {
+/* 141:135 */ return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been chopped by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE);
+/* 142: */ }
+/* 143: */ }
+
+
+/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar
+ * Qualified Name: gregtech.common.tools.GT_Tool_Axe
+ * JD-Core Version: 0.7.0.1
+ */ \ No newline at end of file
diff --git a/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java b/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java
new file mode 100644
index 0000000000..2a26e934f6
--- /dev/null
+++ b/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java
@@ -0,0 +1,106 @@
+/* 1: */ package gregtech.common.tools;
+/* 2: */
+/* 3: */ import gregtech.api.enums.Materials;
+import gregtech.api.enums.Textures;
+/* 4: */ import gregtech.api.enums.Textures.ItemIcons;
+/* 5: */ import gregtech.api.interfaces.IIconContainer;
+/* 6: */ import gregtech.api.items.GT_MetaGenerated_Tool;
+/* 7: */ import gregtech.api.util.GT_ModHandler;
+/* 8: */ import gregtech.api.util.GT_Utility;
+
+/* 9: */ import java.util.List;
+/* 10: */ import java.util.Random;
+
+/* 11: */ import net.minecraft.block.Block;
+/* 12: */ import net.minecraft.block.material.Material;
+/* 13: */ import net.minecraft.entity.EntityLivingBase;
+/* 14: */ import net.minecraft.entity.player.EntityPlayer;
+/* 15: */ import net.minecraft.init.Blocks;
+/* 16: */ import net.minecraft.init.Items;
+/* 17: */ import net.minecraft.item.Item;
+/* 18: */ import net.minecraft.item.ItemStack;
+/* 19: */ import net.minecraft.util.ChatComponentText;
+/* 20: */ import net.minecraft.util.EnumChatFormatting;
+/* 21: */ import net.minecraft.util.IChatComponent;
+/* 22: */ import net.minecraft.world.World;
+import net.minecraftforge.event.world.BlockEvent;
+/* 23: */ import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent;
+/* 24: */
+/* 25: */ public class GT_Tool_BranchCutter
+/* 26: */ extends GT_Tool
+/* 27: */ {
+/* 28: */ public float getBaseDamage()
+/* 29: */ {
+/* 30:26 */ return 2.5F;
+/* 31: */ }
+/* 32: */
+/* 33: */ public float getSpeedMultiplier()
+/* 34: */ {
+/* 35:31 */ return 0.25F;
+/* 36: */ }
+/* 37: */
+/* 38: */ public float getMaxDurabilityMultiplier()
+/* 39: */ {
+/* 40:36 */ return 0.25F;
+/* 41: */ }
+/* 42: */
+/* 43: */ public boolean isGrafter()
+/* 44: */ {
+/* 45:41 */ return true;
+/* 46: */ }
+/* 47: */
+/* 48: */ public int convertBlockDrops(List<ItemStack> aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent)
+/* 49: */ {
+/* 50:46 */ if (aBlock.getMaterial() == Material.leaves)
+/* 51: */ {
+/* 52:47 */ aEvent.dropChance = Math.min(1.0F, Math.max(aEvent.dropChance, (aStack.getItem().getHarvestLevel(aStack, "") + 1) * 0.2F));
+/* 53:48 */ if (aBlock == Blocks.leaves)
+/* 54: */ {
+/* 55:49 */ aDrops.clear();
+/* 56:50 */ if (((aMetaData & 0x3) == 0) && (aPlayer.worldObj.rand.nextInt(9) <= aFortune * 2)) {
+/* 57:50 */ aDrops.add(new ItemStack(Items.apple, 1, 0));
+/* 58: */ } else {
+/* 59:50 */ aDrops.add(new ItemStack(Blocks.sapling, 1, aMetaData & 0x3));
+/* 60: */ }
+/* 61: */ }
+/* 62:51 */ else if (aBlock == Blocks.leaves2)
+/* 63: */ {
+/* 64:52 */ aDrops.clear();
+/* 65:53 */ aDrops.add(new ItemStack(Blocks.sapling, 1, (aMetaData & 0x3) + 4));
+/* 66: */ }
+/* 67:54 */ else if (aBlock == GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("rubberLeaves", 1L)))
+/* 68: */ {
+/* 69:55 */ aDrops.clear();
+/* 70:56 */ aDrops.add(GT_ModHandler.getIC2Item("rubberSapling", 1L));
+/* 71: */ }
+/* 72: */ }
+/* 73:59 */ return 0;
+/* 74: */ }
+/* 75: */
+/* 76: */ public boolean isMinableBlock(Block aBlock, byte aMetaData)
+/* 77: */ {
+/* 78:64 */ String tTool = aBlock.getHarvestTool(aMetaData);
+/* 79:65 */ return ((tTool != null) && (tTool.equals("grafter"))) || (aBlock.getMaterial() == Material.leaves);
+/* 80: */ }
+/* 81: */
+/* 82: */ public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack)
+/* 83: */ {
+/* 84:70 */ return aIsToolHead ? Textures.ItemIcons.GRAFTER : null;
+/* 85: */ }
+/* 86: */
+/* 87: */ public short[] getRGBa(boolean aIsToolHead, ItemStack aStack)
+/* 88: */ {
+/* 89:75 */ return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa;
+/* 90: */ }
+/* 91: */
+/* 92: */ public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity)
+/* 93: */ {
+/* 94:80 */ return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been trimmed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE);
+/* 95: */ }
+/* 96: */ }
+
+
+/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar
+ * Qualified Name: gregtech.common.tools.GT_Tool_BranchCutter
+ * JD-Core Version: 0.7.0.1
+ */ \ No newline at end of file
diff --git a/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java b/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java
new file mode 100644
index 0000000000..2e3a4d9ef0
--- /dev/null
+++ b/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java
@@ -0,0 +1,105 @@
+/* 1: */ package gregtech.common.tools;
+/* 2: */
+/* 3: */ import gregtech.api.enums.Materials;
+import gregtech.api.enums.Textures;
+/* 4: */ import gregtech.api.enums.Textures.ItemIcons;
+/* 5: */ import gregtech.api.interfaces.IIconContainer;
+/* 6: */ import gregtech.api.items.GT_MetaGenerated_Tool;
+/* 7: */ import net.minecraft.block.Block;
+/* 8: */ import net.minecraft.enchantment.Enchantment;
+/* 9: */ import net.minecraft.entity.Entity;
+/* 10: */ import net.minecraft.entity.EntityLivingBase;
+/* 11: */ import net.minecraft.item.ItemStack;
+/* 12: */ import net.minecraft.util.ChatComponentText;
+/* 13: */ import net.minecraft.util.EnumChatFormatting;
+/* 14: */ import net.minecraft.util.IChatComponent;
+/* 15: */
+/* 16: */ public class GT_Tool_ButcheryKnife
+/* 17: */ extends GT_Tool
+/* 18: */ {
+/* 19: */ public int getToolDamagePerBlockBreak()
+/* 20: */ {
+/* 21:18 */ return 200;
+/* 22: */ }
+/* 23: */
+/* 24: */ public int getToolDamagePerDropConversion()
+/* 25: */ {
+/* 26:23 */ return 100;
+/* 27: */ }
+/* 28: */
+/* 29: */ public int getToolDamagePerContainerCraft()
+/* 30: */ {
+/* 31:28 */ return 100;
+/* 32: */ }
+/* 33: */
+/* 34: */ public int getToolDamagePerEntityAttack()
+/* 35: */ {
+/* 36:33 */ return 400;
+/* 37: */ }
+/* 38: */
+/* 39: */ public float getBaseDamage()
+/* 40: */ {
+/* 41:38 */ return 1.0F;
+/* 42: */ }
+/* 43: */
+/* 44: */ public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity)
+/* 45: */ {
+/* 46:43 */ return aOriginalHurtResistance * 2;
+/* 47: */ }
+/* 48: */
+/* 49: */ public float getSpeedMultiplier()
+/* 50: */ {
+/* 51:48 */ return 0.1F;
+/* 52: */ }
+/* 53: */
+/* 54: */ public float getMaxDurabilityMultiplier()
+/* 55: */ {
+/* 56:53 */ return 1.0F;
+/* 57: */ }
+/* 58: */
+/* 59: */ public boolean isWeapon()
+/* 60: */ {
+/* 61:58 */ return true;
+/* 62: */ }
+/* 63: */
+/* 64: */ public boolean isMiningTool()
+/* 65: */ {
+/* 66:63 */ return false;
+/* 67: */ }
+/* 68: */
+/* 69: */ public Enchantment[] getEnchantments(ItemStack aStack)
+/* 70: */ {
+/* 71:68 */ return LOOTING_ENCHANTMENT;
+/* 72: */ }
+/* 73: */
+/* 74: */ public int[] getEnchantmentLevels(ItemStack aStack)
+/* 75: */ {
+/* 76:73 */ return new int[] { (2 + GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mToolQuality) / 2 };
+/* 77: */ }
+/* 78: */
+/* 79: */ public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack)
+/* 80: */ {
+/* 81:78 */ return aIsToolHead ? Textures.ItemIcons.BUTCHERYKNIFE : null;
+/* 82: */ }
+/* 83: */
+/* 84: */ public short[] getRGBa(boolean aIsToolHead, ItemStack aStack)
+/* 85: */ {
+/* 86:83 */ return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa;
+/* 87: */ }
+/* 88: */
+/* 89: */ public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity)
+/* 90: */ {
+/* 91:88 */ return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " has butchered " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE);
+/* 92: */ }
+/* 93: */
+/* 94: */ public boolean isMinableBlock(Block aBlock, byte aMetaData)
+/* 95: */ {
+/* 96:93 */ return false;
+/* 97: */ }
+/* 98: */ }
+
+
+/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar
+ * Qualified Name: gregtech.common.tools.GT_Tool_ButcheryKnife
+ * JD-Core Version: 0.7.0.1
+ */ \ No newline at end of file
diff --git a/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java b/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java
new file mode 100644
index 0000000000..16ba45c220
--- /dev/null
+++ b/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java
@@ -0,0 +1,87 @@
+/* 1: */ package gregtech.common.tools;
+/* 2: */
+/* 3: */ import gregtech.api.GregTech_API;
+/* 4: */ import gregtech.api.enums.Materials;
+import gregtech.api.enums.Textures;
+/* 5: */ import gregtech.api.enums.Textures.ItemIcons;
+/* 6: */ import gregtech.api.interfaces.IIconContainer;
+/* 7: */ import gregtech.api.items.GT_MetaGenerated_Tool;
+
+/* 8: */ import java.util.Map;
+
+/* 9: */ import net.minecraft.block.Block;
+/* 10: */ import net.minecraft.entity.EntityLivingBase;
+/* 11: */ import net.minecraft.item.ItemStack;
+/* 12: */ import net.minecraft.util.ChatComponentText;
+/* 13: */ import net.minecraft.util.EnumChatFormatting;
+/* 14: */ import net.minecraft.util.IChatComponent;
+/* 15: */
+/* 16: */ public class GT_Tool_BuzzSaw
+/* 17: */ extends GT_Tool_Saw
+/* 18: */ {
+/* 19: */ public int getToolDamagePerContainerCraft()
+/* 20: */ {
+/* 21:18 */ return 100;
+/* 22: */ }
+/* 23: */
+/* 24: */ public int getToolDamagePerEntityAttack()
+/* 25: */ {
+/* 26:23 */ return 300;
+/* 27: */ }
+/* 28: */
+/* 29: */ public float getBaseDamage()
+/* 30: */ {
+/* 31:28 */ return 1.0F;
+/* 32: */ }
+/* 33: */
+/* 34: */ public float getMaxDurabilityMultiplier()
+/* 35: */ {
+/* 36:33 */ return 1.0F;
+/* 37: */ }
+/* 38: */
+/* 39: */ public String getCraftingSound()
+/* 40: */ {
+/* 41:38 */ return (String)GregTech_API.sSoundList.get(Integer.valueOf(104));
+/* 42: */ }
+/* 43: */
+/* 44: */ public String getEntityHitSound()
+/* 45: */ {
+/* 46:43 */ return (String)GregTech_API.sSoundList.get(Integer.valueOf(105));
+/* 47: */ }
+/* 48: */
+/* 49: */ public String getBreakingSound()
+/* 50: */ {
+/* 51:48 */ return (String)GregTech_API.sSoundList.get(Integer.valueOf(0));
+/* 52: */ }
+/* 53: */
+/* 54: */ public String getMiningSound()
+/* 55: */ {
+/* 56:53 */ return (String)GregTech_API.sSoundList.get(Integer.valueOf(104));
+/* 57: */ }
+/* 58: */
+/* 59: */ public boolean isMinableBlock(Block aBlock, byte aMetaData)
+/* 60: */ {
+/* 61:58 */ return false;
+/* 62: */ }
+/* 63: */
+/* 64: */ public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack)
+/* 65: */ {
+/* 66:63 */ return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadBuzzSaw.mTextureIndex] : Textures.ItemIcons.HANDLE_BUZZSAW;
+/* 67: */ }
+/* 68: */
+/* 69: */ public short[] getRGBa(boolean aIsToolHead, ItemStack aStack)
+/* 70: */ {
+/* 71:68 */ return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa;
+/* 72: */ }
+/* 73: */
+/* 74: */ public IChatComponent g