diff options
| author | Blood-Asp <bloodasphendrik@gmail.com> | 2016-01-03 05:27:51 +0100 |
|---|---|---|
| committer | Blood-Asp <bloodasphendrik@gmail.com> | 2016-01-03 05:27:51 +0100 |
| commit | 5fd2db9ef23d3348810e658ab0641f842e854fdb (patch) | |
| tree | 15686da782a8743cd8217312f12eb101944c19a3 /src/main/java/gregtech/api/items | |
| parent | dd6e61da1656544c929f1a5a80ea7c4c30cb9260 (diff) | |
| download | GT5-Unofficial-5fd2db9ef23d3348810e658ab0641f842e854fdb.tar.gz GT5-Unofficial-5fd2db9ef23d3348810e658ab0641f842e854fdb.tar.bz2 GT5-Unofficial-5fd2db9ef23d3348810e658ab0641f842e854fdb.zip | |
spelling fixes and chainsaw + forestry leaves fix
Diffstat (limited to 'src/main/java/gregtech/api/items')
| -rw-r--r-- | src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java index 702ab4ee96..5bbf4d0729 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java @@ -24,6 +24,7 @@ import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; @@ -37,6 +38,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.IShearable; import net.minecraftforge.event.world.BlockEvent; import java.util.ArrayList; @@ -209,6 +211,38 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements if (isItemStackUsable(aStack) && getDigSpeed(aStack, aBlock, aMetaData) > 0.0F) doDamage(aStack, tStats.convertBlockDrops(aDrops, aStack, aPlayer, aBlock, aX, aY, aZ, aMetaData, aFortune, aSilkTouch, aEvent) * tStats.getToolDamagePerDropConversion()); } + + @Override + public boolean onBlockStartBreak(ItemStack aStack, int aX, int aY, int aZ, EntityPlayer aPlayer) + { + if(aPlayer.worldObj.isRemote){ + return false; + } + IToolStats tStats = getToolStats(aStack); + Block aBlock = aPlayer.worldObj.getBlock(aX, aY, aZ); + if (tStats.isChainsaw()&&(aBlock instanceof IShearable)) + { + IShearable target = (IShearable)aBlock; + if ((target.isShearable(aStack, aPlayer.worldObj, aX, aY, aZ))) + { + ArrayList<ItemStack> drops = target.onSheared(aStack, aPlayer.worldObj, aX, aY, aZ, EnchantmentHelper.getEnchantmentLevel(Enchantment.fortune.effectId, aStack)); + for (ItemStack stack : drops) + { + float f = 0.7F; + double d = itemRand.nextFloat() * f + (1.0F - f) * 0.5D; + double d1 = itemRand.nextFloat() * f + (1.0F - f) * 0.5D; + double d2 = itemRand.nextFloat() * f + (1.0F - f) * 0.5D; + EntityItem entityitem = new EntityItem(aPlayer.worldObj, aX + d, aY + d1, aZ + d2, stack); + entityitem.delayBeforeCanPickup = 10; + aPlayer.worldObj.spawnEntityInWorld(entityitem); + } + aPlayer.addStat(net.minecraft.stats.StatList.mineBlockStatArray[Block.getIdFromBlock(aBlock)], 1); + onBlockDestroyed(aStack, aPlayer.worldObj, aBlock, aX, aY, aZ, aPlayer); + } + return false; + } + return super.onBlockStartBreak(aStack, aX, aY, aZ, aPlayer); + } @Override public boolean onLeftClickEntity(ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { |
