public override int GetHashCode() { int hash = 25; unchecked { hash = hash * 31 + ItemID; hash = hash * 31 + SkinID; if (ItemAPI.IsLegendary(ItemID)) { hash = hash * 31 + StatID; } } return(hash); }
public override bool Equals(object obj) { if (obj is ExtendedItemStack) { var item = obj as ExtendedItemStack; if (item != null && ItemAPI.IsLegendary(ID) && ItemAPI.IsLegendary(item.ID)) { return(item != null && SkinID == item.SkinID && ID == item.ID); } return(item != null && SkinID == item.SkinID && ID == item.ID && StatID == item.StatID); } if (obj is ItemStackDifference) { var item = obj as ItemStackDifference; if (item != null && ItemAPI.IsLegendary(ID) && ItemAPI.IsLegendary(item.ItemID)) { return(item != null && SkinID == item.SkinID && ID == item.ItemID); } return(item != null && SkinID == item.SkinID && ID == item.ItemID && StatID == item.StatID); } return(false); }