package com.cricketcraft.chisel.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 com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.block.tileentity.TileEntityAutoChisel.Upgrade; public class ItemUpgrade extends BaseItem { public IIcon[] icons = new IIcon[4]; public ItemUpgrade(String unlocalizedName) { super(); this.setUnlocalizedName(unlocalizedName); this.setCreativeTab(CreativeTabs.tabMaterials); setHasSubtypes(true); setMaxStackSize(1); // it's easier this way } @Override public IIcon getIconFromDamage(int meta) { // using modulo throughout to prevent AIOB return this.icons[meta % Upgrade.values().length]; } @Override public void registerIcons(IIconRegister reg) { Upgrade[] upgrades = Upgrade.values(); for (int i = 0; i < upgrades.length; i++) { this.icons[i] = reg.registerIcon(Chisel.MOD_ID + ":upgrade_" + upgrades[i].name().toLowerCase()); } } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void getSubItems(Item item, CreativeTabs tab, List list) { for (int i = 0; i < Upgrade.values().length; i++) { list.add(new ItemStack(item, 1, i)); } } @Override public String getUnlocalizedName(ItemStack stack) { Upgrade[] upgrades = Upgrade.values(); return upgrades[stack.getItemDamage() % upgrades.length].getUnlocalizedName(); } }