package gregtech.api.objects; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; /** * GT_ItemStack, but with a better hashCode(). Due to this change, it should not be placed in the same hash based * data structure with GT_ItemStack. It also shouldn't be used to construct search query into a hash based data structure * that contains GT_ItemStack. */ public class GT_ItemStack2 extends GT_ItemStack { public GT_ItemStack2(Item aItem, long aStackSize, long aMetaData) { super(aItem, aStackSize, aMetaData); } public GT_ItemStack2(ItemStack aStack) { super(aStack); } public GT_ItemStack2(ItemStack aStack, boolean wildcard) { super(aStack, wildcard); } @Override public boolean equals(Object aStack) { if (aStack == this) return true; if (aStack instanceof GT_ItemStack) { return ((GT_ItemStack) aStack).mItem == mItem && ((GT_ItemStack) aStack).mMetaData == mMetaData; } return false; } @Override public int hashCode() { return mItem.hashCode() * 38197 + mMetaData; } }