package cofh.lib.inventory;
import cofh.lib.util.helpers.ItemHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
/**
* This is basically a default "safe" implementation of a ComparableItemStack - the OreID will only be used for the 5 "basic" conventions.
*
* @author King Lemming
*
*/
public class ComparableItemStackSafe extends ComparableItemStack {
static final String BLOCK = "block";
static final String ORE = "ore";
static final String DUST = "dust";
static final String INGOT = "ingot";
static final String NUGGET = "nugget";
public static boolean safeOreType(String oreName) {
return oreName.startsWith(BLOCK) || oreName.startsWith(ORE) || oreName.startsWith(DUST) || oreName.startsWith(INGOT) || oreName.startsWith(NUGGET);
}
public static int getOreID(ItemStack stack) {
int id = ItemHelper.oreProxy.getOreID(stack);
if (!safeOreType(ItemHelper.oreProxy.getOreName(id))) {
return -1;
}
return id;
}
public static int getOreID(String oreName) {
if (!safeOreType(oreName)) {
return -1;
}
return ItemHelper.oreProxy.getOreID(oreName);
}
public ComparableItemStackSafe(ItemStack stack) {
super(stack);
oreID = getOreID(stack);
}
public ComparableItemStackSafe(Item item, int damage, int stackSize) {
super(item, damage, stackSize);
this.oreID = getOreID(this.toItemStack());
}
@Override
public ComparableItemStackSafe set(ItemStack stack) {
super.set(stack);
oreID = getOreID(stack);
return this;
}
}