From d39db6dc49cbe7ca5f6eb875bbd68bbf66e7c168 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Tue, 7 Oct 2014 22:43:06 +0200 Subject: [PATCH] Dying costs 10% max durability of tools --- .../tconstruct/tools/TinkerToolEvents.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/tconstruct/tools/TinkerToolEvents.java b/src/main/java/tconstruct/tools/TinkerToolEvents.java index ecb5d4e7..b6d31099 100644 --- a/src/main/java/tconstruct/tools/TinkerToolEvents.java +++ b/src/main/java/tconstruct/tools/TinkerToolEvents.java @@ -5,6 +5,7 @@ import cpw.mods.fml.common.eventhandler.*; import cpw.mods.fml.common.gameevent.PlayerEvent.ItemCraftedEvent; import java.util.List; import net.minecraft.entity.*; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.*; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; @@ -13,6 +14,7 @@ import net.minecraft.item.*; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.*; import net.minecraftforge.event.entity.living.*; +import net.minecraftforge.event.entity.player.PlayerDropsEvent; import net.minecraftforge.oredict.*; import net.minecraftforge.oredict.OreDictionary.OreRegisterEvent; import tconstruct.TConstruct; @@ -432,4 +434,23 @@ public class TinkerToolEvents TinkerTools.modAttack.addStackToMatchList(evt.Ore, 24); } } + + + @SubscribeEvent + public void damageToolsOnDeath (PlayerDropsEvent event) + { + for(EntityItem drop : event.drops) + { + // we're only interested in tools + if(!(drop.getEntityItem().getItem() instanceof ToolCore) || !drop.getEntityItem().hasTagCompound()) + continue; + + // damage tools by 10% of their total durability! + NBTTagCompound tags = drop.getEntityItem().getTagCompound().getCompoundTag("InfiTool"); + int dur = tags.getInteger("TotalDurability"); + dur /= 10; + + AbilityHelper.damageTool(drop.getEntityItem(), dur, event.entityPlayer, true); + } + } }