package ic2.api.recipe;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
public final class RecipeOutput {
public RecipeOutput(NBTTagCompound metadata1, List<ItemStack> items1) {
assert !items1.contains(null);
this.metadata = metadata1;
this.items = items1;
}
public RecipeOutput(NBTTagCompound metadata1, ItemStack... items1) {
this(metadata1, Arrays.asList(items1));
}
@Override
public boolean equals(Object obj) {
if (obj instanceof RecipeOutput) {
RecipeOutput ro = (RecipeOutput) obj;
if (items.size() == ro.items.size() &&
(metadata == null && ro.metadata == null || metadata != null && ro.metadata != null && metadata.equals(ro.metadata))) {
Iterator<ItemStack> itA = items.iterator();
Iterator<ItemStack> itB = ro.items.iterator();
while (itA.hasNext() && itB.hasNext()) {
ItemStack stackA = itA.next();
ItemStack stackB = itB.next();
if (ItemStack.areItemStacksEqual(stackA, stackB)) return false;
}
return true;
}
}
return false;
}
@Override
public String toString() {
return "ROutput<"+items+","+metadata+">";
}
public final List<ItemStack> items;
public final NBTTagCompound metadata;
}