package codechicken.nei; import codechicken.nei.api.ItemFilter; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class ItemStackSet extends ItemStackMap<ItemStack> implements ItemFilter { public ItemStackSet with(ItemStack... items) { for (ItemStack item : items) { add(item); } return this; } public ItemStackSet with(Item... items) { for (Item item : items) { add(ItemStackMap.wildcard(item)); } return this; } public ItemStackSet with(Block... blocks) { for (Block block : blocks) { add(ItemStackMap.wildcard(Item.getItemFromBlock(block))); } return this; } public void add(ItemStack item) { put(item, item); } public boolean contains(ItemStack item) { return get(item) != null; } public boolean containsAll(Item item) { return get(ItemStackMap.wildcard(item)) != null; } @Override public boolean matches(ItemStack item) { return contains(item); } public static ItemStackSet of(Block... blocks) { return new ItemStackSet().with(blocks); } public static ItemStackSet of(Item... items) { return new ItemStackSet().with(items); } public static ItemStackSet of(ItemStack... items) { return new ItemStackSet().with(items); } }