Advertisement
Guest User

ItemArmorPaper.class #3

a guest
Feb 25th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.56 KB | None | 0 0
  1. package com.arctic.paperArmor.items;
  2.  
  3. import com.arctic.paperArmor.init.ModItems;
  4. import net.minecraft.entity.item.EntityItem;
  5. import net.minecraft.entity.player.EntityPlayer;
  6. import net.minecraft.init.Items;
  7. import net.minecraft.item.Item;
  8. import net.minecraft.item.ItemStack;
  9. import net.minecraft.nbt.NBTTagCompound;
  10. import net.minecraft.util.IChatComponent;
  11. import net.minecraft.world.World;
  12.  
  13. public class ItemArmorPaper extends ItemArmorPA {
  14.     public ItemArmorPaper(int armorType) {
  15.         super("paper", paper, armorType);
  16.     }
  17.  
  18.     private final int water = 20;
  19.     private final int fire = 10;
  20.  
  21.     private final int[] armorCounts = {5,8,7,4};
  22.     private final int[] armorSlots = {3,2,1,0};
  23.  
  24.     protected enum Damage{
  25.         water(Items.string,"water"),
  26.         fire(null,"fire"),
  27.         generic(Items.paper,null);
  28.  
  29.         Item drop;
  30.         String msg;
  31.         Damage(Item drop, String msg){
  32.             this.drop = drop;
  33.             this.msg = msg;
  34.         }
  35.     }
  36.  
  37.     @Override
  38.     public void onArmorTick(World world, EntityPlayer player, ItemStack stack) {
  39.         super.onArmorTick(world, player, stack);
  40.         if (!world.isRemote) {
  41.             if (stack.hasTagCompound()) {
  42.                 if (player.isWet()){
  43.                     if (stack.getTagCompound().hasKey("WetTick")){
  44.                         wetTick(player, stack);
  45.                     } else {
  46.                         stack.getTagCompound().setInteger("WetTick", water);
  47.                     }
  48.                 } else if (player.isBurning()){
  49.                     if (stack.getTagCompound().hasKey("FireTick")){
  50.                         fireTick(player, stack);
  51.                     } else {
  52.                         stack.getTagCompound().setInteger("FireTick", fire);
  53.                     }
  54.                 }
  55.             } else {
  56.                 stack.setTagCompound(new NBTTagCompound());
  57.             }
  58.         }
  59.     }
  60.  
  61.     private void breakPaper(EntityPlayer player, ItemStack stack){
  62.         int amount = armorCounts[armorType];
  63.  
  64.         ItemStack stackDrop = new ItemStack(Items.paper,amount);
  65.         EntityItem item = new EntityItem(player.worldObj,player.posX,player.posY,player.posZ);
  66.         item.setEntityItemStack(stackDrop);
  67.         player.worldObj.spawnEntityInWorld(item);
  68.     }
  69.  
  70.     private void wetTick(EntityPlayer player, ItemStack stack){
  71.         int wetTick = stack.getTagCompound().getInteger("WetTick");
  72.         if (wetTick == 0) {
  73.             damagePiece(player,stack,Damage.water);
  74.             wetTick = water;
  75.         } else wetTick--;
  76.         stack.getTagCompound().setInteger("WetTick", wetTick);
  77.     }
  78.  
  79.     private void fireTick(EntityPlayer player, ItemStack stack){
  80.         int fireTick = stack.getTagCompound().getInteger("FireTick");
  81.         if (fireTick == 0) {
  82.             damagePiece(player,stack,Damage.fire);
  83.             fireTick = fire;
  84.         } else fireTick--;
  85.         stack.getTagCompound().setInteger("FireTick", fireTick);
  86.     }
  87.  
  88.     private void damagePiece(EntityPlayer player, ItemStack stack, Damage damage){
  89.         stack.damageItem(1,player);
  90.         if (stack.stackSize == 0){
  91.             int amount = 0;
  92.             if (player.getCurrentArmor(armorSlots[armorType])!=null) {
  93.                 //player.addChatComponentMessage(player.getCurrentArmor(armorSlots[armorType]).func_151000_E().appendText(" "+armorType));
  94.                 if (stack.getItem() == player.getCurrentArmor(armorSlots[armorType]).getItem()) {
  95.                     player.inventory.armorInventory[armorSlots[armorType]] = null;
  96.                     amount = armorCounts[armorType];
  97.                 }
  98.                 if (damage != null) {
  99.                     if (damage.msg != null) playBreakMSG(player, stack, damage.msg);
  100.                     if (damage.drop != null && amount > 0) {
  101.                         ItemStack stackDrop = new ItemStack(damage.drop, amount);
  102.                         EntityItem item = new EntityItem(player.worldObj, player.posX, player.posY, player.posZ);
  103.                         item.setEntityItemStack(stackDrop);
  104.                         player.worldObj.spawnEntityInWorld(item);
  105.                     }
  106.                 }
  107.             }
  108.         }
  109.     }
  110.  
  111.     private void playBreakMSG(EntityPlayer player, ItemStack stack, String src){
  112.         IChatComponent msg = stack.func_151000_E();
  113.         msg.appendText(" It seams paper and "+src+" do not mix.");
  114.         player.addChatComponentMessage(msg);
  115.     }
  116.  
  117.     public int getDuribilityRemaining(ItemStack stack){
  118.         return stack.getMaxDamage()-stack.getItemDamage();
  119.     }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement