Example usage for net.minecraftforge.fluids FluidStack containsFluid

List of usage examples for net.minecraftforge.fluids FluidStack containsFluid

Introduction

In this page you can find the example usage for net.minecraftforge.fluids FluidStack containsFluid.

Prototype

public boolean containsFluid(@Nonnull FluidStack other) 

Source Link

Document

Determines if the Fluids are equal and this stack is larger.

Usage

From source file:blusunrize.immersiveengineering.api.crafting.BottlingMachineRecipe.java

public static BottlingMachineRecipe findRecipe(ItemStack input, FluidStack fluid) {
    if (!input.isEmpty() && fluid != null)
        for (BottlingMachineRecipe recipe : recipeList)
            if (ApiUtils.stackMatchesObject(input, recipe.input) && fluid.containsFluid(recipe.fluidInput))
                return recipe;
    return null;//ww  w.j  a  v  a 2 s. c o m
}

From source file:blusunrize.immersiveengineering.api.crafting.IngredientStack.java

public boolean matchesItemStack(ItemStack input) {
    if (input.isEmpty())
        return false;
    if (this.fluid != null) {
        FluidStack fs = FluidUtil.getFluidContained(input);
        if (fs != null && fs.containsFluid(fluid))
            return true;
    }/*from   w  ww  . j  a  va  2  s .  co m*/
    if (this.oreName != null)
        return ApiUtils.compareToOreName(input, oreName) && this.inputSize <= input.getCount();
    if (this.stackList != null) {
        for (ItemStack iStack : this.stackList)
            if (OreDictionary.itemMatches(iStack, input, false) && this.inputSize <= input.getCount())
                return true;
    }
    if (!OreDictionary.itemMatches(stack, input, false) || this.inputSize > input.getCount())
        return false;
    if (this.useNBT) {
        if (this.stack.hasTagCompound() != input.hasTagCompound())
            return false;
        if (!this.stack.hasTagCompound() && !input.hasTagCompound())
            return true;
        return this.stack.getTagCompound().equals(input.getTagCompound());
    }
    return true;
}

From source file:blusunrize.immersiveengineering.api.crafting.IngredientStack.java

public boolean matchesItemStackIgnoringSize(ItemStack input) {
    if (input.isEmpty())
        return false;
    if (this.fluid != null) {
        FluidStack fs = FluidUtil.getFluidContained(input);
        if (fs != null && fs.containsFluid(fluid))
            return true;
    }//from   w w  w.j  a va  2 s  .  c o m
    if (this.oreName != null)
        return ApiUtils.compareToOreName(input, oreName);
    if (this.stackList != null) {
        for (ItemStack iStack : this.stackList)
            if (OreDictionary.itemMatches(iStack, input, false))
                return true;
    }
    if (!OreDictionary.itemMatches(stack, input, false))
        return false;
    if (this.useNBT) {
        if (this.stack.hasTagCompound() != input.hasTagCompound())
            return false;
        if (!this.stack.hasTagCompound() && !input.hasTagCompound())
            return true;
        return this.stack.getTagCompound().equals(input.getTagCompound());
    }
    return true;
}

From source file:blusunrize.immersiveengineering.api.crafting.MixerRecipe.java

protected boolean compareToInputs(FluidStack fluid, NonNullList<ItemStack> components, FluidStack fluidInput,
        IngredientStack[] itemInputs) {// w ww. jav  a2  s .c  o m
    if (fluid != null && fluid.containsFluid(fluidInput)) {
        ArrayList<ItemStack> queryList = new ArrayList<ItemStack>(components.size());
        for (ItemStack s : components)
            if (!s.isEmpty())
                queryList.add(s.copy());

        for (IngredientStack add : itemInputs)
            if (add != null) {
                int addAmount = add.inputSize;
                Iterator<ItemStack> it = queryList.iterator();
                while (it.hasNext()) {
                    ItemStack query = it.next();
                    if (!query.isEmpty()) {
                        if (add.matches(query))
                            if (query.getCount() > addAmount) {
                                query.shrink(addAmount);
                                addAmount = 0;
                            } else {
                                addAmount -= query.getCount();
                                query.setCount(0);
                            }
                        if (query.getCount() <= 0)
                            it.remove();
                        if (addAmount <= 0)
                            break;
                    }
                }
                if (addAmount > 0)
                    return false;
            }
        return true;
    }
    return false;
}

From source file:blusunrize.immersiveengineering.api.crafting.RefineryRecipe.java

public static RefineryRecipe findRecipe(FluidStack input0, FluidStack input1) {
    for (RefineryRecipe recipe : recipeList) {
        if (input0 != null) {
            if (recipe.input0 != null && input0.containsFluid(recipe.input0)) {
                if ((recipe.input1 == null && input1 == null)
                        || (recipe.input1 != null && input1 != null && input1.containsFluid(recipe.input1)))
                    return recipe;
            }//  w w  w . j av  a2s  .c o m

            if (recipe.input1 != null && input0.containsFluid(recipe.input1)) {
                if ((recipe.input0 == null && input1 == null)
                        || (recipe.input0 != null && input1 != null && input1.containsFluid(recipe.input0)))
                    return recipe;
            }
        } else if (input1 != null) {
            if (recipe.input0 != null && input1.containsFluid(recipe.input0) && recipe.input1 == null)
                return recipe;
            if (recipe.input1 != null && input1.containsFluid(recipe.input1) && recipe.input0 == null)
                return recipe;
        }
    }
    return null;
}

From source file:blusunrize.immersiveengineering.common.crafting.IngredientFluidStack.java

@Override
public boolean apply(@Nullable ItemStack stack) {
    if (stack == null) {
        return false;
    } else {//w w  w  . j a  v  a  2  s  .  c o  m
        FluidStack fs = FluidUtil.getFluidContained(stack);
        return fs == null && this.fluid == null || fs != null && fs.containsFluid(fluid);
    }
}

From source file:forestry.core.fluids.FluidHelper.java

License:Open Source License

public static boolean containsFluidStack(ItemStack stack, FluidStack fluidStack) {
    Item item = stack.getItem();/*w ww  .j a  v  a2  s  .c  o  m*/
    if (item instanceof IFluidContainerItem) {
        IFluidContainerItem containerItem = (IFluidContainerItem) item;
        FluidStack contained = containerItem.getFluid(stack);
        return contained != null && contained.containsFluid(fluidStack);
    }

    return FluidContainerRegistry.containsFluid(stack, fluidStack);
}

From source file:mods.railcraft.common.fluids.FluidHelper.java

License:Open Source License

public static Collection<ItemStack> getContainersFilledWith(FluidStack fluidStack) {
    List<ItemStack> containers = new ArrayList<ItemStack>();
    for (FluidContainerData data : FluidContainerRegistry.getRegisteredFluidContainerData()) {
        FluidStack inContainer = getFluidStackInContainer(data.filledContainer);
        if (inContainer != null && inContainer.containsFluid(fluidStack))
            containers.add(data.filledContainer.copy());
    }//from www .j  a  v  a2s . c o m
    return containers;
}

From source file:mods.railcraft.common.fluids.FluidItemHelper.java

License:Open Source License

public static boolean containsFluid(ItemStack stack, FluidStack fluidStack) {
    if (stack == null || fluidStack == null)
        return false;
    if (stack.getItem() instanceof IFluidContainerItem) {
        IFluidContainerItem fluidCon = (IFluidContainerItem) stack.getItem();
        FluidStack conFluidStack = fluidCon.getFluid(stack);
        return conFluidStack != null && conFluidStack.containsFluid(fluidStack);
    }/*  w  w w. j a v  a  2  s  .c o m*/
    return FluidContainerRegistry.containsFluid(stack, fluidStack);
}