/* * 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.items.ItemTie.EnumTie; import mods.railcraft.common.plugins.forge.CraftingPlugin; import mods.railcraft.common.plugins.forge.RailcraftRegistry; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import java.util.List; import java.util.Locale; public class ItemRailbed extends ItemRailcraft { public enum EnumRailbed implements IItemMetaEnum { WOOD("stickWood"), STONE(Blocks.stone_slab); public static final EnumRailbed[] VALUES = values(); private IIcon icon; private Object alternate; EnumRailbed(Object alt) { this.alternate = alt; } @Override public Object getAlternate() { return alternate; } @Override public Class<? extends ItemRailcraft> getItemClass() { return ItemRailbed.class; } } public ItemRailbed() { setHasSubtypes(true); setMaxDamage(0); setUnlocalizedName("railcraft.part.railbed"); } @Override public void initItem() { for (EnumRailbed railbed : EnumRailbed.VALUES) { RailcraftRegistry.register(new ItemStack(this, 1, railbed.ordinal())); } } @Override public void registerIcons(IIconRegister iconRegister) { for (EnumRailbed railbed : EnumRailbed.VALUES) { railbed.icon = iconRegister.registerIcon("railcraft:part.railbed." + railbed.name().toLowerCase(Locale.ENGLISH)); } } @Override public void getSubItems(Item id, CreativeTabs tab, List list) { for (int i = 0; i < 2; i++) { list.add(new ItemStack(this, 1, i)); } } @Override public IIcon getIconFromDamage(int damage) { if (damage >= EnumRailbed.VALUES.length) return EnumRailbed.WOOD.icon; return EnumRailbed.VALUES[damage].icon; } @Override public String getUnlocalizedName(ItemStack stack) { switch (stack.getItemDamage()) { case 1: return "item.railcraft.part.railbed.stone"; default: return "item.railcraft.part.railbed.wood"; } } @Override public void defineRecipes() { RailcraftItem item = RailcraftItem.railbed; Object tieWood = RailcraftItem.tie.getRecipeObject(EnumTie.WOOD); CraftingPlugin.addShapelessRecipe(item.getStack(1, EnumRailbed.WOOD), tieWood, tieWood, tieWood, tieWood); Object tieStone = RailcraftItem.tie.getRecipeObject(EnumTie.STONE); CraftingPlugin.addShapelessRecipe(item.getStack(1, EnumRailbed.STONE), tieStone, tieStone, tieStone, tieStone); } }