/* * 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.api.crafting.RailcraftCraftingManager; import mods.railcraft.common.plugins.forge.RailcraftRegistry; import mods.railcraft.common.util.crafting.RollingMachineCraftingManager; 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.item.crafting.IRecipe; import net.minecraft.util.IIcon; import net.minecraftforge.oredict.ShapedOreRecipe; import java.util.List; import java.util.Locale; public class ItemPlate extends ItemRailcraft { public enum EnumPlate implements IItemMetaEnum { IRON("ingotIron"), STEEL("ingotSteel"), TIN("ingotTin"), COPPER("ingotCopper"), LEAD("ingotLead"); public static final EnumPlate[] VALUES = values(); private IIcon icon; private final Object alternate; EnumPlate(Object alt) { this.alternate = alt; } @Override public Object getAlternate() { return alternate; } @Override public Class<? extends ItemRailcraft> getItemClass() { return ItemPlate.class; } } public ItemPlate() { setHasSubtypes(true); setMaxDamage(0); } @Override public void initItem() { for (EnumPlate p : EnumPlate.VALUES) { ItemStack stack = new ItemStack(this, 1, p.ordinal()); RailcraftRegistry.register(stack); } } @Override public void registerIcons(IIconRegister iconRegister) { for (EnumPlate plate : EnumPlate.VALUES) { plate.icon = iconRegister.registerIcon("railcraft:part.plate." + plate.name().toLowerCase(Locale.ENGLISH)); } } @Override public void getSubItems(Item id, CreativeTabs tab, List list) { for (EnumPlate plate : EnumPlate.VALUES) { list.add(new ItemStack(this, 1, plate.ordinal())); } } @Override public IIcon getIconFromDamage(int damage) { if (damage < 0 || damage >= EnumPlate.VALUES.length) return EnumPlate.IRON.icon; return EnumPlate.VALUES[damage].icon; } @Override public void defineRecipes() { RailcraftItem plate = RailcraftItem.plate; // Iron Plate IRecipe recipe = new ShapedOreRecipe(plate.getStack(4, EnumPlate.IRON), "II", "II", 'I', "ingotIron"); RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe); // Steel Plate recipe = new ShapedOreRecipe(plate.getStack(4, EnumPlate.STEEL), "II", "II", 'I', "ingotSteel"); RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe); // Tin Plate recipe = new ShapedOreRecipe(plate.getStack(4, EnumPlate.TIN), "IT", "TI", 'I', "ingotIron", 'T', "ingotTin"); RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe); // Copper Plate recipe = new ShapedOreRecipe(plate.getStack(4, EnumPlate.COPPER), "II", "II", 'I', "ingotCopper"); RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe); // Lead Plate recipe = new ShapedOreRecipe(plate.getStack(4, EnumPlate.LEAD), "II", "II", 'I', "ingotLead"); RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe); RailcraftCraftingManager.blastFurnace.addRecipe(plate.getStack(EnumPlate.IRON), true, false, 1280, RailcraftItem.ingot.getStack(ItemIngot.EnumIngot.STEEL)); } @Override public String getUnlocalizedName(ItemStack stack) { int damage = stack.getItemDamage(); if (damage < 0 || damage >= EnumPlate.VALUES.length) return ""; switch (EnumPlate.VALUES[damage]) { case IRON: return "item.railcraft.part.plate.iron"; case STEEL: return "item.railcraft.part.plate.steel"; case TIN: return "item.railcraft.part.plate.tin"; case COPPER: return "item.railcraft.part.plate.copper"; case LEAD: return "item.railcraft.part.plate.lead"; default: return ""; } } }