/*
* 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.CraftingPlugin;
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 ItemNugget extends ItemRailcraft {
public enum EnumNugget implements IItemMetaEnum {
IRON("nuggetIron"),
STEEL("nuggetSteel"),
COPPER("nuggetCopper"),
TIN("nuggetTin"),
LEAD("nuggetLead");
public static EnumNugget[] VALUES = values();
private IIcon icon;
private String oreTag;
EnumNugget(String oreTag) {
this.oreTag = oreTag;
}
@Override
public Object getAlternate() {
return oreTag;
}
@Override
public Class<? extends ItemRailcraft> getItemClass() {
return ItemNugget.class;
}
}
public ItemNugget() {
setHasSubtypes(true);
setMaxDamage(0);
}
@Override
public void initItem() {
for (EnumNugget n : EnumNugget.VALUES) {
ItemStack stack = new ItemStack(this, 1, n.ordinal());
RailcraftRegistry.register(stack);
ForestryPlugin.addBackpackItem("miner", stack);
Metal m = Metal.get(n);
OreDictionary.registerOre(m.getNuggetTag(), m.getNugget());
}
}
@Override
public String getOreTag(IItemMetaEnum meta) {
assertMeta(meta);
return ((EnumNugget) meta).oreTag;
}
@Override
public void defineRecipes() {
for (EnumNugget n : EnumNugget.VALUES) {
Metal m = Metal.get(n);
CraftingPlugin.addShapelessRecipe(m.getNugget(9), m.getIngot());
CraftingPlugin.addShapedRecipe(m.getIngot(),
"NNN",
"NNN",
"NNN",
'N', m.getNuggetTag());
}
}
@Override
public void registerIcons(IIconRegister iconRegister) {
for (EnumNugget nugget : EnumNugget.VALUES) {
nugget.icon = iconRegister.registerIcon("railcraft:nugget." + nugget.name().toLowerCase(Locale.ENGLISH));
}
}
@Override
public void getSubItems(Item id, CreativeTabs tab, List list) {
for (EnumNugget dust : EnumNugget.VALUES) {
list.add(new ItemStack(this, 1, dust.ordinal()));
}
}
@Override
public IIcon getIconFromDamage(int damage) {
if (damage >= EnumNugget.values().length)
return EnumNugget.IRON.icon;
return EnumNugget.VALUES[damage].icon;
}
@Override
public String getUnlocalizedName(ItemStack stack) {
int damage = stack.getItemDamage();
if (damage < 0 || damage >= EnumNugget.VALUES.length)
return "";
switch (EnumNugget.VALUES[damage]) {
case IRON:
return "item.railcraft.nugget.iron";
case STEEL:
return "item.railcraft.nugget.steel";
case COPPER:
return "item.railcraft.nugget.copper";
case TIN:
return "item.railcraft.nugget.tin";
case LEAD:
return "item.railcraft.nugget.lead";
default:
return "";
}
}
}