package com.agilemods.materiamuto.common.item.baubles; import baubles.api.BaubleType; import baubles.api.IBauble; import com.agilemods.materiamuto.common.item.prefab.MMItem; 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 net.minecraft.world.World; import com.agilemods.materiamuto.api.IModeChanger; import com.agilemods.materiamuto.common.lib.LibMisc; @Optional.Interface(iface = "baubles.api.IBauble", modid = "Baubles") public class ItemSwiftWolfsRendingGale extends MMItem implements IBauble, IModeChanger { private IIcon iconInactive; private IIcon[] iconActiveStage; public ItemSwiftWolfsRendingGale() { super(); setMaxStackSize(1); } @Override public IIcon getIconFromDamage(int damage) { if (damage == 0) { return iconInactive; } else { return iconActiveStage[net.minecraft.util.MathHelper.clamp_int(damage - 1, 0, 2)]; } } @Override public void registerIcons(IIconRegister register) { iconInactive = register.registerIcon(LibMisc.RESOURCE_PREFIX + "rings/swrg_off"); iconActiveStage = new IIcon[3]; for (int i = 0; i < 3; i++) { iconActiveStage[i] = register.registerIcon(LibMisc.RESOURCE_PREFIX + "rings/swrg_on" + (i + 1)); } } @Override public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer entityPlayer) { if (!world.isRemote) { changeMode(entityPlayer, itemStack); } return itemStack; } @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 if (itemStack.getItemDamage() == 1) { itemStack.setItemDamage(2); } else if (itemStack.getItemDamage() == 2) { itemStack.setItemDamage(3); } else { itemStack.setItemDamage(0); } } }