Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.rbs.slurpiesdongles.Items;
- import baubles.api.BaubleType;
- import baubles.api.BaublesApi;
- import baubles.api.IBauble;
- import com.rbs.slurpiesdongles.events.Changer;
- import com.rbs.slurpiesdongles.events.Timers;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.EntityLivingBase;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.inventory.EntityEquipmentSlot;
- import net.minecraft.item.ItemStack;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.world.World;
- import net.minecraftforge.fml.common.Loader;
- import net.minecraftforge.fml.common.Optional;
- import net.minecraftforge.items.CapabilityItemHandler;
- import net.minecraftforge.items.IItemHandler;
- /**
- * Created by RedBu on 3/4/2017.
- */
- @Optional.Interface(iface = "baubles.api.IBauble", modid = "Baubles")
- public class DaRepairItem extends ItemBase implements IBauble {
- public DaRepairItem(String name) {
- super(name);
- }
- @Override
- public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5) {
- if (!stack.hasTagCompound())
- {
- stack.setTagCompound(new NBTTagCompound());
- }
- if (world.isRemote || !(entity instanceof EntityPlayer))
- {
- return;
- }
- EntityPlayer player = (EntityPlayer) entity;
- player.getCapability(Timers.CAPABILITY, null).activateRepair();
- if (player.getCapability(Timers.CAPABILITY, null).canRepair())
- {
- repairAllItems(player);
- }
- }
- private void repairAllItems(EntityPlayer player)
- {
- IItemHandler inv = player.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
- for (int i = 0; i < inv.getSlots(); i++)
- {
- ItemStack invStack = inv.getStackInSlot(i);
- if (invStack == null || invStack.getItem() instanceof Changer || !invStack.getItem().isRepairable())
- {
- continue;
- }
- if (Loader.isModLoaded("chisel"))
- {
- if (chiselCheck(invStack)) continue;
- }
- if (invStack == player.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND) && player.isSwingInProgress)
- {
- //Don't repair item that is currently used by the player.
- continue;
- }
- if (ItemHelper.isDamageable(invStack) && invStack.getItemDamage() > 0)
- {
- invStack.setItemDamage(invStack.getItemDamage() - 1);
- }
- }
- if (Loader.isModLoaded("Baubles")) baubleRepair(player);
- }
- @Optional.Method(modid = "chisel")
- public boolean chiselCheck(ItemStack is)
- {
- return false; // todo return is.getItem() instanceof IChiselItem;
- }
- @Optional.Method(modid = "Baubles")
- public void baubleRepair(EntityPlayer player)
- {
- IItemHandler bInv = BaublesApi.getBaublesHandler(player);
- for (int i = 0; i < bInv.getSlots(); i++)
- {
- ItemStack bInvStack = bInv.getStackInSlot(i);
- if (bInvStack == null || bInvStack.getItem() instanceof Changer || !bInvStack.getItem().isRepairable())
- {
- continue;
- }
- if (ItemHelper.isDamageable(bInvStack) && bInvStack.getItemDamage() > 0)
- {
- bInvStack.setItemDamage(bInvStack.getItemDamage() - 1);
- }
- }
- }
- @Override
- @Optional.Method(modid = "Baubles")
- public baubles.api.BaubleType getBaubleType(ItemStack itemstack)
- {
- return BaubleType.BELT;
- }
- @Override
- @Optional.Method(modid = "Baubles")
- public void onWornTick(ItemStack stack, EntityLivingBase player)
- {
- this.onUpdate(stack, player.getEntityWorld(), player, 0, false);
- }
- @Override
- @Optional.Method(modid = "Baubles")
- public void onEquipped(ItemStack itemstack, EntityLivingBase player) {}
- @Override
- @Optional.Method(modid = "Baubles")
- public void onUnequipped(ItemStack itemstack, EntityLivingBase player) {}
- @Override
- @Optional.Method(modid = "Baubles")
- public boolean canEquip(ItemStack itemstack, EntityLivingBase player)
- {
- return true;
- }
- @Override
- @Optional.Method(modid = "Baubles")
- public boolean canUnequip(ItemStack itemstack, EntityLivingBase player)
- {
- return true;
- }
- @Override
- public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged)
- {
- if(slotChanged || (oldStack.getItem() != newStack.getItem())){
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement