/*
* 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.core.RailcraftConfig;
import mods.railcraft.common.plugins.forestry.ForestryPlugin;
import mods.railcraft.common.plugins.forge.RailcraftRegistry;
import mods.railcraft.common.plugins.ic2.IC2Plugin;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.oredict.OreDictionary;
import java.util.List;
/**
* @author CovertJaguar <http://www.railcraft.info>
*/
public class ItemDust extends ItemRailcraft {
public enum EnumDust implements IItemMetaEnum {
OBSIDIAN("dust.obsidian", "dustObsidian"),
SULFUR("dust.sulfur", "dustSulfur"),
SALTPETER("dust.saltpeter", "dustSaltpeter"),
CHARCOAL("dust.charcoal", "dustCharcoal");
public static final EnumDust[] VALUES = values();
private final String tag;
private final String oreTag;
private IIcon icon;
EnumDust(String tag, String oreTag) {
this.tag = tag;
this.oreTag = oreTag;
}
@Override
public Object getAlternate() {
return oreTag;
}
@Override
public Class<? extends ItemRailcraft> getItemClass() {
return ItemDust.class;
}
}
public ItemDust() {
setHasSubtypes(true);
setMaxDamage(0);
}
@Override
public void initItem() {
for (EnumDust d : EnumDust.VALUES) {
ItemStack stack = new ItemStack(this, 1, d.ordinal());
RailcraftRegistry.register(stack);
ForestryPlugin.addBackpackItem("miner", stack);
OreDictionary.registerOre(d.oreTag, stack.copy());
}
}
@Override
public void definePostRecipes() {
if (IC2Plugin.isModInstalled() && RailcraftConfig.getRecipeConfig("ic2.macerator.charcoal")) {
IC2Plugin.addMaceratorRecipe(new ItemStack(Items.coal, 1, 1), new ItemStack(this, 1, EnumDust.CHARCOAL.ordinal()));
}
}
@Override
public void registerIcons(IIconRegister iconRegister) {
for (EnumDust dust : EnumDust.VALUES) {
dust.icon = iconRegister.registerIcon("railcraft:" + dust.tag);
}
}
@Override
public void getSubItems(Item item, CreativeTabs tab, List list) {
for (EnumDust dust : EnumDust.VALUES) {
list.add(new ItemStack(this, 1, dust.ordinal()));
}
}
@Override
public IIcon getIconFromDamage(int damage) {
if (damage >= EnumDust.VALUES.length) {
return EnumDust.CHARCOAL.icon;
}
return EnumDust.VALUES[damage].icon;
}
@Override
public String getUnlocalizedName(ItemStack stack) {
int damage = stack.getItemDamage();
if (damage < 0 || damage >= EnumDust.VALUES.length)
return "";
return "item.railcraft." + EnumDust.VALUES[damage].tag;
}
@Override
public String getOreTag(IItemMetaEnum meta) {
assertMeta(meta);
return ((EnumDust) meta).oreTag;
}
}