Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.camellias.voidaicarcania.items.baubles.amulets;
- import com.camellias.voidaicarcania.Main;
- import com.camellias.voidaicarcania.init.ModItems;
- import com.camellias.voidaicarcania.util.IHasModel;
- import baubles.api.BaubleType;
- import baubles.api.BaublesApi;
- import baubles.api.IBauble;
- import baubles.api.cap.IBaublesItemHandler;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.EntityLivingBase;
- import net.minecraft.entity.SharedMonsterAttributes;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.init.Items;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.ActionResult;
- import net.minecraft.util.DamageSource;
- import net.minecraft.util.EnumActionResult;
- import net.minecraft.util.EnumHand;
- import net.minecraft.world.World;
- import net.minecraftforge.event.entity.living.LivingHurtEvent;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- public class ItemShieldAmulet extends Item implements IHasModel, IBauble
- {
- public ItemShieldAmulet(String name)
- {
- this.setUnlocalizedName(name);
- this.setRegistryName(name);
- this.setCreativeTab(Main.voidictab);
- this.maxStackSize = 1;
- this.setMaxDamage(5);
- ModItems.ITEMS.add(this);
- }
- @Override
- public BaubleType getBaubleType(ItemStack itemstack)
- {
- return BaubleType.AMULET;
- }
- @Override
- public void onUpdate(ItemStack stack, World world, Entity entity, int itemSlot, boolean isSelected)
- {
- if(stack.getItemDamage() <= 4 && entity.ticksExisted % 100 == 0)
- {
- stack.setItemDamage(stack.getItemDamage() - 1);
- }
- }
- @Override
- public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand)
- {
- if(!world.isRemote)
- {
- IBaublesItemHandler baubles = BaublesApi.getBaublesHandler(player);
- for(int i = 0; i < baubles.getSlots(); i++)
- {
- if((baubles.getStackInSlot(i) == null || baubles.getStackInSlot(i).isEmpty()) &&
- baubles.isItemValidForSlot(i, player.getHeldItem(hand), player))
- {
- baubles.setStackInSlot(i, player.getHeldItem(hand).copy());
- if(!player.capabilities.isCreativeMode)
- {
- player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY);
- }
- onEquipped(player.getHeldItem(hand), player);
- break;
- }
- }
- }
- return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, player.getHeldItem(hand));
- }
- @Override
- public void onWornTick(ItemStack stack, EntityLivingBase player)
- {
- if(this.getDamage(new ItemStack(this)) > 0)
- {
- this.setDamage(new ItemStack(this), this.getMaxDamage() - 1);
- }
- if(this.getDamage(new ItemStack(this)) == 0)
- {
- }
- }
- @SubscribeEvent
- public void onPlayerHurt(LivingHurtEvent event)
- {
- if(event.getEntityLiving() instanceof EntityPlayer)
- {
- EntityPlayer player = (EntityPlayer) event.getEntityLiving();
- if(BaublesApi.isBaubleEquipped(player, this))
- {
- }
- }
- }
- @Override
- public void onEquipped(ItemStack itemstack, EntityLivingBase player)
- {
- player.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(player.getMaxHealth() - 2);
- }
- @Override
- public void onUnequipped(ItemStack itemstack, EntityLivingBase player)
- {
- player.setEntityInvulnerable(false);
- player.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(player.getMaxHealth() + 2);
- }
- @Override
- public void registerModels()
- {
- Main.proxy.registerItemRenderer(this, 0, "inventory");
- }
- public static boolean isUsable(ItemStack stack)
- {
- return stack.getItemDamage() < stack.getMaxDamage() - 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment