package com.agilemods.materiamuto.common.item.baubles; import baubles.api.BaubleType; import baubles.api.IBauble; import com.agilemods.materiamuto.api.IKeyBound; import com.agilemods.materiamuto.common.item.prefab.MMItem; import com.agilemods.materiamuto.common.lib.LibKey; import com.agilemods.materiamuto.common.lib.LibMisc; import cpw.mods.fml.common.Optional; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import com.agilemods.materiamuto.api.IModeChanger; @Optional.Interface(iface = "baubles.api.IBauble", modid = "Baubles") public class ItemBlackHoleBand extends MMItem implements IBauble, IModeChanger, IKeyBound { private IIcon iconInactive; private IIcon iconActive; public ItemBlackHoleBand() { super(); setMaxStackSize(1); } @Override public IIcon getIconFromDamage(int damage) { return damage == 1 ? iconActive : iconInactive; } @Override public void registerIcons(IIconRegister register) { iconInactive = register.registerIcon(LibMisc.RESOURCE_PREFIX + "rings/black_hole_off"); iconActive = register.registerIcon(LibMisc.RESOURCE_PREFIX + "rings/black_hole_on"); } @Optional.Method(modid = "Baubles") @Override public BaubleType getBaubleType(ItemStack itemstack) { return BaubleType.RING; } @Optional.Method(modid = "Baubles") @Override public void onWornTick(ItemStack itemstack, EntityLivingBase player) { } @Optional.Method(modid = "Baubles") @Override public void onEquipped(ItemStack itemstack, EntityLivingBase player) { } @Optional.Method(modid = "Baubles") @Override public void onUnequipped(ItemStack itemstack, EntityLivingBase player) { } @Optional.Method(modid = "Baubles") @Override public boolean canEquip(ItemStack itemstack, EntityLivingBase player) { return true; } @Optional.Method(modid = "Baubles") @Override public boolean canUnequip(ItemStack itemstack, EntityLivingBase player) { return true; } @Override public byte getMode(ItemStack itemStack) { return (byte) itemStack.getItemDamage(); } @Override public void changeMode(EntityPlayer entityPlayer, ItemStack itemStack) { if (itemStack.getItemDamage() == 0) { itemStack.setItemDamage(1); } else { itemStack.setItemDamage(0); } } @Override public void doKeyAction(EntityPlayer entityPlayer, ItemStack itemStack, LibKey key) { if (key == LibKey.MODE) { changeMode(entityPlayer, itemStack); } } }