package crazypants.enderio.conduit.item;
import java.util.List;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import com.enderio.core.api.client.gui.IResourceTooltipProvider;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.EnderIOTab;
import crazypants.enderio.ModObject;
public class ItemExtractSpeedUpgrade extends Item implements IResourceTooltipProvider {
private static final SpeedUpgrade UPGRADES[] = SpeedUpgrade.values();
private final IIcon[] icons;
public static ItemExtractSpeedUpgrade create() {
ItemExtractSpeedUpgrade result = new ItemExtractSpeedUpgrade();
result.init();
return result;
}
protected ItemExtractSpeedUpgrade() {
setCreativeTab(EnderIOTab.tabEnderIO);
setUnlocalizedName(ModObject.itemExtractSpeedUpgrade.unlocalisedName);
setHasSubtypes(true);
setMaxDamage(0);
setMaxStackSize(64);
icons = new IIcon[UPGRADES.length];
}
protected void init() {
GameRegistry.registerItem(this, ModObject.itemExtractSpeedUpgrade.unlocalisedName);
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int damage) {
damage = MathHelper.clamp_int(damage, 0, icons.length - 1);
return icons[damage];
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) {
for (int i = 0; i < UPGRADES.length; i++) {
icons[i] = iconRegister.registerIcon(UPGRADES[i].iconName);
}
}
@Override
public String getUnlocalizedName(ItemStack par1ItemStack) {
return getSpeedUpgrade(par1ItemStack).unlocName;
}
@Override
@SuppressWarnings({ "rawtypes", "unchecked" })
@SideOnly(Side.CLIENT)
public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List par3List) {
for (int j = 0; j < UPGRADES.length; ++j) {
par3List.add(new ItemStack(par1, 1, j));
}
}
public SpeedUpgrade getSpeedUpgrade(ItemStack par1ItemStack) {
int i = MathHelper.clamp_int(par1ItemStack.getItemDamage(), 0, UPGRADES.length - 1);
return UPGRADES[i];
}
@Override
public String getUnlocalizedNameForTooltip(ItemStack itemStack) {
return getUnlocalizedName(itemStack);
}
}