Advertisement
Guest User

Untitled

a guest
Mar 6th, 2017
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.75 KB | None | 0 0
  1. package com.rbs.slurpiesdongles.Items;
  2.  
  3. import baubles.api.BaubleType;
  4. import baubles.api.BaublesApi;
  5. import baubles.api.IBauble;
  6. import com.rbs.slurpiesdongles.events.Changer;
  7. import com.rbs.slurpiesdongles.events.Timers;
  8. import net.minecraft.entity.Entity;
  9. import net.minecraft.entity.EntityLivingBase;
  10. import net.minecraft.entity.player.EntityPlayer;
  11. import net.minecraft.inventory.EntityEquipmentSlot;
  12. import net.minecraft.item.ItemStack;
  13. import net.minecraft.nbt.NBTTagCompound;
  14. import net.minecraft.world.World;
  15. import net.minecraftforge.fml.common.Loader;
  16. import net.minecraftforge.fml.common.Optional;
  17. import net.minecraftforge.items.CapabilityItemHandler;
  18. import net.minecraftforge.items.IItemHandler;
  19.  
  20.  
  21. /**
  22. * Created by RedBu on 3/4/2017.
  23. */
  24.  
  25.  
  26.  
  27. @Optional.Interface(iface = "baubles.api.IBauble", modid = "Baubles")
  28. public class DaRepairItem extends ItemBase implements IBauble {
  29.  
  30.  
  31. public DaRepairItem(String name) {
  32. super(name);
  33. }
  34.  
  35.  
  36. @Override
  37. public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5) {
  38. if (!stack.hasTagCompound())
  39. {
  40. stack.setTagCompound(new NBTTagCompound());
  41. }
  42.  
  43. if (world.isRemote || !(entity instanceof EntityPlayer))
  44. {
  45. return;
  46. }
  47.  
  48. EntityPlayer player = (EntityPlayer) entity;
  49.  
  50. player.getCapability(Timers.CAPABILITY, null).activateRepair();
  51.  
  52. if (player.getCapability(Timers.CAPABILITY, null).canRepair())
  53. {
  54. repairAllItems(player);
  55. }
  56. }
  57.  
  58.  
  59. private void repairAllItems(EntityPlayer player)
  60. {
  61. IItemHandler inv = player.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
  62.  
  63. for (int i = 0; i < inv.getSlots(); i++)
  64. {
  65. ItemStack invStack = inv.getStackInSlot(i);
  66.  
  67. if (invStack == null || invStack.getItem() instanceof Changer || !invStack.getItem().isRepairable())
  68. {
  69. continue;
  70. }
  71.  
  72. if (Loader.isModLoaded("chisel"))
  73. {
  74. if (chiselCheck(invStack)) continue;
  75. }
  76.  
  77. if (invStack == player.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND) && player.isSwingInProgress)
  78. {
  79. //Don't repair item that is currently used by the player.
  80. continue;
  81. }
  82.  
  83. if (ItemHelper.isDamageable(invStack) && invStack.getItemDamage() > 0)
  84. {
  85. invStack.setItemDamage(invStack.getItemDamage() - 1);
  86. }
  87. }
  88.  
  89. if (Loader.isModLoaded("Baubles")) baubleRepair(player);
  90. }
  91.  
  92. @Optional.Method(modid = "chisel")
  93. public boolean chiselCheck(ItemStack is)
  94. {
  95. return false; // todo return is.getItem() instanceof IChiselItem;
  96. }
  97.  
  98. @Optional.Method(modid = "Baubles")
  99. public void baubleRepair(EntityPlayer player)
  100. {
  101. IItemHandler bInv = BaublesApi.getBaublesHandler(player);
  102.  
  103. for (int i = 0; i < bInv.getSlots(); i++)
  104. {
  105. ItemStack bInvStack = bInv.getStackInSlot(i);
  106. if (bInvStack == null || bInvStack.getItem() instanceof Changer || !bInvStack.getItem().isRepairable())
  107. {
  108. continue;
  109. }
  110.  
  111. if (ItemHelper.isDamageable(bInvStack) && bInvStack.getItemDamage() > 0)
  112. {
  113. bInvStack.setItemDamage(bInvStack.getItemDamage() - 1);
  114. }
  115. }
  116. }
  117.  
  118. @Override
  119. @Optional.Method(modid = "Baubles")
  120. public baubles.api.BaubleType getBaubleType(ItemStack itemstack)
  121. {
  122. return BaubleType.BELT;
  123. }
  124.  
  125. @Override
  126. @Optional.Method(modid = "Baubles")
  127. public void onWornTick(ItemStack stack, EntityLivingBase player)
  128. {
  129. this.onUpdate(stack, player.getEntityWorld(), player, 0, false);
  130. }
  131.  
  132. @Override
  133. @Optional.Method(modid = "Baubles")
  134. public void onEquipped(ItemStack itemstack, EntityLivingBase player) {}
  135.  
  136. @Override
  137. @Optional.Method(modid = "Baubles")
  138. public void onUnequipped(ItemStack itemstack, EntityLivingBase player) {}
  139.  
  140. @Override
  141. @Optional.Method(modid = "Baubles")
  142. public boolean canEquip(ItemStack itemstack, EntityLivingBase player)
  143. {
  144. return true;
  145. }
  146.  
  147. @Override
  148. @Optional.Method(modid = "Baubles")
  149. public boolean canUnequip(ItemStack itemstack, EntityLivingBase player)
  150. {
  151. return true;
  152. }
  153.  
  154. @Override
  155. public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged)
  156. {
  157. if(slotChanged || (oldStack.getItem() != newStack.getItem())){
  158. return true;
  159. }
  160.  
  161. return false;
  162. }
  163.  
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement