package tppitweaks.item; import java.util.List; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import tppitweaks.TPPITweaks; import tppitweaks.tweak.recipe.TweakExtraUtilities; import tppitweaks.tweak.recipe.TweakMekanism; import cpw.mods.fml.common.Loader; public class TPPIMaterial extends Item { public IIcon uncookedIcon; public TPPIMaterial() { super(); setCreativeTab(TPPITweaks.creativeTab); setHasSubtypes(true); } private IIcon[] icons; private String[] unlocNames = { "multicoreProcessor", "disassemblerCore", "miningCore", "dmCore", "enderium420", "soul" }; @Override public void registerIcons(IIconRegister par1IconRegister) { icons = new IIcon[6]; icons[0] = par1IconRegister.registerIcon("tppitweaks:tppiProcessor"); icons[1] = par1IconRegister.registerIcon("tppitweaks:disassemblerCore"); icons[2] = par1IconRegister.registerIcon("tppitweaks:miningCore"); icons[3] = Loader.isModLoaded("Mekanism") ? TweakMekanism.getCircuitIcon() : par1IconRegister.registerIcon("not:applicable"); icons[4] = par1IconRegister.registerIcon("tppitweaks:blazeEnderStill"); icons[5] = Loader.isModLoaded("ExtraUtilities") ? TweakExtraUtilities.getSoulFragmentIcon() : par1IconRegister.registerIcon("not:applicable"); } @Override public String getUnlocalizedName(ItemStack stack) { return unlocNames[stack.getItemDamage()]; } public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if (stack.getItemDamage() != 5) return stack; if (!world.isRemote) { player.inventory.decrStackSize(player.inventory.currentItem, 1); world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, new ItemStack(TweakExtraUtilities.soul))); player.playSound("random.drink", 0.5F, world.rand.nextFloat() * 0.1F + 0.9F); } return stack; } @Override public boolean hasEffect(ItemStack stack, int pass) { return stack.getItemDamage() == 2 || stack.getItemDamage() == 3 || stack.getItemDamage() == 5; } @Override @SideOnly(Side.CLIENT) @SuppressWarnings("unchecked") public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean advanced) { switch (stack.getItemDamage()) { case 4: { list.add("Unused"); break; } case 5: { list.add(StatCollector.translateToLocal("tppi.tooltip.soul")); } default: break; } } @Override public IIcon getIconFromDamage(int dmg) { return dmg < icons.length ? icons[dmg] : null; } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void getSubItems(Item item, CreativeTabs tab, List list) { for (int i = 0; i < unlocNames.length; i++) list.add(new ItemStack(this, 1, i)); } }