/* * Copyright (c) CovertJaguar, 2014 http://railcraft.info * * This code is the property of CovertJaguar * and may only be used with explicit written * permission unless otherwise specified on the * license page at http://railcraft.info/wiki/info:license. */ package mods.railcraft.common.items; import mods.railcraft.common.plugins.forestry.ForestryPlugin; import mods.railcraft.common.plugins.forge.LootPlugin; import mods.railcraft.common.plugins.forge.RailcraftRegistry; 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.minecraftforge.oredict.OreDictionary; import java.util.List; import java.util.Locale; /** * @author CovertJaguar <http://www.railcraft.info> */ public class ItemIngot extends ItemRailcraft { public enum EnumIngot implements IItemMetaEnum { STEEL("ingotSteel"), COPPER("ingotCopper"), TIN("ingotTin"), LEAD("ingotLead"); public static final EnumIngot[] VALUES = values(); private IIcon icon; private String oreTag; EnumIngot(String oreTag) { this.oreTag = oreTag; } @Override public Object getAlternate() { return oreTag; } @Override public Class<? extends ItemRailcraft> getItemClass() { return ItemIngot.class; } } public ItemIngot() { setHasSubtypes(true); setMaxDamage(0); setUnlocalizedName("railcraft.ingot"); setSmeltingExperience(1); } @Override public void initItem() { for (EnumIngot i : EnumIngot.VALUES) { ItemStack stack = new ItemStack(this, 1, i.ordinal()); ForestryPlugin.addBackpackItem("miner", stack); RailcraftRegistry.register(stack); Metal m = Metal.get(i); OreDictionary.registerOre(m.getIngotTag(), m.getIngot()); } LootPlugin.addLootTool(new ItemStack(this), 5, 9, "steel.ingot"); } @Override public String getOreTag(IItemMetaEnum meta) { assertMeta(meta); return ((EnumIngot) meta).oreTag; } @Override public void registerIcons(IIconRegister iconRegister) { for (EnumIngot ingot : EnumIngot.VALUES) { ingot.icon = iconRegister.registerIcon("railcraft:ingot." + ingot.name().toLowerCase(Locale.ENGLISH)); } } @Override public void getSubItems(Item id, CreativeTabs tab, List list) { for (EnumIngot ingot : EnumIngot.VALUES) { list.add(new ItemStack(this, 1, ingot.ordinal())); } } @Override public IIcon getIconFromDamage(int damage) { if (damage >= EnumIngot.VALUES.length) return EnumIngot.STEEL.icon; return EnumIngot.VALUES[damage].icon; } @Override public String getUnlocalizedName(ItemStack stack) { int damage = stack.getItemDamage(); if (damage < 0 || damage >= EnumIngot.VALUES.length) return "item.railcraft.ingot"; switch (EnumIngot.VALUES[damage]) { case STEEL: return "item.railcraft.ingot.steel"; case COPPER: return "item.railcraft.ingot.copper"; case TIN: return "item.railcraft.ingot.tin"; case LEAD: return "item.railcraft.ingot.lead"; default: return "item.railcraft.ingot"; } } }