package com.hbm.inventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; public class RecipesCommon { public static class ComparableStack { Item item; int stacksize; int meta; public ComparableStack(Item item) { this.item = item; this.stacksize = 1; this.meta = 0; } public ComparableStack(Item item, int stacksize) { this(item); this.stacksize = stacksize; } public ComparableStack(Item item, int stacksize, int meta) { this(item, stacksize); this.meta = meta; } public ItemStack toStack() { return new ItemStack(item, stacksize, meta); } public String[] getDictKeys() { int[] ids = OreDictionary.getOreIDs(toStack()); if(ids == null || ids.length == 0) return new String[0]; String[] entries = new String[ids.length]; for(int i = 0; i < ids.length; i++) { entries[i] = OreDictionary.getOreName(ids[i]); } return entries; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + Item.getIdFromItem(item); result = prime * result + meta; result = prime * result + stacksize; return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ComparableStack other = (ComparableStack) obj; if (item == null) { if (other.item != null) return false; } else if (!item.equals(other.item)) return false; if (meta != other.meta) return false; if (stacksize != other.stacksize) return false; return true; } } }