/* * 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.util.collections; import java.util.HashSet; import mods.railcraft.api.core.items.IStackFilter; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; /** * @author CovertJaguar <http://www.railcraft.info/> */ public class ItemSet extends HashSet<ItemKey> { public boolean add(Item item, int meta) { return add(new ItemKey(item, meta)); } public boolean add(Item item) { return add(new ItemKey(item)); } public boolean contains(Item item, int meta) { if (contains(new ItemKey(item))) return true; return contains(new ItemKey(item, meta)); } public boolean contains(ItemStack stack) { if (stack == null) return false; return contains(stack.getItem(), stack.getItemDamage()); } public IStackFilter getStackFilter() { return new IStackFilter() { @Override public boolean matches(ItemStack stack) { return contains(stack); } }; } }