package ic2.api.recipe; import java.util.Arrays; import java.util.Iterator; import java.util.List; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; /** * @author estebes */ public class RecipeOutputFluid { public RecipeOutputFluid(NBTTagCompound metadata, List<FluidStack> outputs) { assert !outputs.contains(null); this.metadata = metadata; this.outputs = outputs; } public RecipeOutputFluid(NBTTagCompound metadata, FluidStack... outputs) { this(metadata, Arrays.asList(outputs)); } @Override public boolean equals(Object obj) { if (obj instanceof RecipeOutputFluid) { RecipeOutputFluid ro = (RecipeOutputFluid) obj; if (outputs.size() == ro.outputs.size() && (metadata == null && ro.metadata == null || metadata != null && ro.metadata != null && metadata.equals(ro.metadata))) { Iterator<FluidStack> itA = outputs.iterator(); Iterator<FluidStack> itB = ro.outputs.iterator(); while (itA.hasNext() && itB.hasNext()) { FluidStack stackA = itA.next(); FluidStack stackB = itB.next(); if (stackA.isFluidStackIdentical(stackB)) return false; } return true; } } return false; } @Override public String toString() { return "ROutput<"+outputs+","+metadata+">"; } public final List<FluidStack> outputs; public final NBTTagCompound metadata; }