| package ic2.api.recipe; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import net.minecraft.item.ItemStack; |
| |
| import net.minecraftforge.fluids.Fluid; |
| import net.minecraftforge.fluids.FluidContainerRegistry; |
| import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; |
| import net.minecraftforge.fluids.FluidStack; |
| |
| public class RecipeInputFluidContainer implements IRecipeInput { |
| public RecipeInputFluidContainer(Fluid fluid) { |
| this(fluid, FluidContainerRegistry.BUCKET_VOLUME); |
| } |
| |
| public RecipeInputFluidContainer(Fluid fluid, int amount) { |
| this.fluid = fluid; |
| this.amount = amount; |
| } |
| |
| @Override |
| public boolean matches(ItemStack subject) { |
| FluidStack fs = FluidContainerRegistry.getFluidForFilledItem(subject); |
| if (fs == null) return false; |
| |
| return fs.getFluid() == fluid; |
| } |
| |
| @Override |
| public int getAmount() { |
| return amount; |
| } |
| |
| @Override |
| public List<ItemStack> getInputs() { |
| List<ItemStack> ret = new ArrayList<ItemStack>(); |
| |
| for (FluidContainerData data : FluidContainerRegistry.getRegisteredFluidContainerData()) { |
| if (data.fluid.getFluid() == fluid) ret.add(data.filledContainer); |
| } |
| |
| return ret; |
| } |
| |
| @Override |
| public String toString() { |
| return "RInputFluidContainer<"+amount+"x"+fluid.getName()+">"; |
| } |
| |
| public final Fluid fluid; |
| public final int amount; |
| } |