/* * 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.fluids.FluidHelper; import mods.railcraft.common.fluids.Fluids; import mods.railcraft.common.plugins.forge.CraftingPlugin; 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.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 ItemTie extends ItemRailcraft { public enum EnumTie implements IItemMetaEnum { WOOD("slabWood"), STONE(Blocks.stone_slab); public static final EnumTie[] VALUES = values(); private IIcon icon; private Object alternate; EnumTie(Object alt) { this.alternate = alt; } @Override public Object getAlternate() { return alternate; } @Override public Class<? extends ItemRailcraft> getItemClass() { return ItemTie.class; } } public ItemTie() { setHasSubtypes(true); setMaxDamage(0); } @Override public void registerIcons(IIconRegister iconRegister) { for (EnumTie tie : EnumTie.VALUES) { tie.icon = iconRegister.registerIcon("railcraft:part.tie." + tie.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 >= EnumTie.VALUES.length) return EnumTie.WOOD.icon; return EnumTie.VALUES[damage].icon; } @Override public String getUnlocalizedName(ItemStack stack) { String base = super.getUnlocalizedName(); switch (stack.getItemDamage()) { case 1: return base + ".stone"; default: return base + ".wood"; } } @Override public void initItem() { for (EnumTie tie : EnumTie.VALUES) { RailcraftRegistry.register(new ItemStack(this, 1, tie.ordinal())); } LootPlugin.addLootRailway(RailcraftItem.tie.getStack(1, EnumTie.WOOD), 4, 16, "tie.wood"); LootPlugin.addLootWorkshop(RailcraftItem.tie.getStack(1, EnumTie.STONE), 4, 16, "tie.stone"); } @Override public void defineRecipes() { ItemStack tieStone = RailcraftItem.tie.getStack(1, EnumTie.STONE); CraftingPlugin.addShapedRecipe(tieStone, " O ", "###", 'O', RailcraftItem.rebar, '#', new ItemStack(Blocks.stone_slab, 1, 0)); } @Override public void definePostRecipes() { ItemStack tieWood = RailcraftItem.tie.getStack(1, EnumTie.WOOD); for (ItemStack container : FluidHelper.getContainersFilledWith(Fluids.CREOSOTE.getB(1))) { CraftingPlugin.addShapedRecipe(tieWood, " O ", "###", 'O', container, '#', "slabWood"); } } }