Dying costs 10% max durability of tools

This commit is contained in:
Bernhard Bonigl committed 2014-10-07 22:43:06 +02:00
1 parent 85a9bb2ce9
commit d39db6dc49
1 file changed
+21
@@ -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);
}
}
}