Package net.minecraftforge.fluids

Examples of net.minecraftforge.fluids.FluidStack


    for (IRecipe recipe : recipes) {
      boolean addRecipe = false;
      if(recipe.isValidInput(0, ingredient) || recipe.isValidInput(1, ingredient)) {
        addRecipe = true;
      } else if(FluidContainerRegistry.isFilledContainer(ingredient)) {
        FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(ingredient);
        if(fluid != null) {
          if(recipe.isValidInput(fluid)) {
            addRecipe = true;
          }
        }
      }
      if(addRecipe) {
        FluidStack output = recipe.getOutputs()[0].getFluidOutput();
        InnerVatRecipe res = new InnerVatRecipe(recipe.getEnergyRequired(), recipe.getInputs(), output);
        res.setIngredientPermutation(res.inputs, ingredient);
        arecipes.add(res);
      }
    }
View Full Code Here


  @Override
  public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
    if(!canSendFluid()) {
      return 0;
    }
    FluidStack in = resource.copy();
    int result = 0;
    for (NetworkFluidHandler h : getNetworkHandlers()) {
      if(h.node.canRecieveFluid() && h.handler.canFill(h.dirOp, in.getFluid())) {
        int filled = h.handler.fill(h.dirOp, in, doFill);
        in.amount -= filled;
        result += filled;
      }
    }
View Full Code Here

  public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
    if(!canRecieveFluid() || resource == null) {
      return null;
    }

    FluidStack in = resource.copy();
    FluidStack result = null;
    for (NetworkFluidHandler h : getNetworkHandlers()) {
      if(h.node.canSendFluid() && h.handler.canDrain(h.dirOp, in.getFluid())) {
        FluidStack res = h.handler.drain(h.dirOp, in, false);
        if(res != null) {
          if(result == null) {
            result = res.copy();
            if(doDrain) {
              h.handler.drain(h.dirOp, in, true);
            }

          } else if(result.isFluidEqual(res)) {
View Full Code Here

  public FluidStack drain(ForgeDirection from, int maxDrainIn, boolean doDrain) {
    if(!canRecieveFluid()) {
      return null;
    }
    int maxDrain = maxDrainIn;
    FluidStack result = null;
    for (NetworkFluidHandler h : getNetworkHandlers()) {
      if(h.node.canSendFluid()) {
        FluidStack res = h.handler.drain(h.dirOp, maxDrain, false);
        if(res != null) {
          if(result == null) {
            result = res.copy();
            if(doDrain) {
              h.handler.drain(h.dirOp, maxDrain, true);
            }
            maxDrain -= res.amount;
          } else if(result.isFluidEqual(res)) {
View Full Code Here

      inputFluidStack = fluids.get(0).copy();
    } else {
      inputFluidStack = null;
    }

    FluidStack os = null;
    for (RecipeOutput output : recipe.getOutputs()) {
      if(output.isFluid()) {
        os = output.getFluidOutput().copy();
        break;
      }
View Full Code Here

    }

    int found = 0;
    for (MachineRecipeInput in : inputs) {
      if(in.isFluid()) {
        FluidStack needFluid = getRequiredFluidInput(inputs);
        boolean validFluid = needFluid.isFluidEqual(in.fluid);
        if(validFluid && needFluid.amount <= in.fluid.amount) {
          found++;
        }

      } else {
View Full Code Here

  }

  public FluidStack getRequiredFluidInput(MachineRecipeInput[] inputs) {
    float inputFluidMul = 1;
    float outputFluidMul = 1;
    FluidStack inputFluidStack = null;
    for (MachineRecipeInput ri : inputs) {
      if(!ri.isFluid()) {
        inputFluidMul *= getMultiplierForInput(ri.item);
      } else {
        inputFluidStack = ri.fluid.copy();
View Full Code Here

    inputFluidStack.amount = Math.round(inputFluidMul * FluidContainerRegistry.BUCKET_VOLUME);
    return inputFluidStack;
  }

  public FluidStack getFluidOutput(MachineRecipeInput... inputs) {
    FluidStack outFluid = getOutputFluid().copy();
    float outMul = 1;
    for (MachineRecipeInput ri : inputs) {
      outMul *= getMultiplierForInput(ri.item);
      outMul *= getMultiplierForInput(ri.fluid);
    }
View Full Code Here

      BlockCoord loc = getLocation().getLocation(dir);
      IFluidHandler target = FluidUtil.getFluidHandler(worldObj, loc);
      if(target != null) {
        if(target.canFill(dir.getOpposite(), outputTank.getFluid().getFluid())) {
          FluidStack push = outputTank.getFluid().copy();
          push.amount = Math.min(push.amount, IO_MB_TICK);
          int filled = target.fill(dir.getOpposite(), push, true);
          if(filled > 0) {
            outputTank.drain(filled, true);
            tanksDirty = true;
View Full Code Here

      BlockCoord loc = getLocation().getLocation(dir);
      IFluidHandler target = FluidUtil.getFluidHandler(worldObj, loc);
      if(target != null) {

        if(inputTank.getFluidAmount() > 0) {
          FluidStack canPull = inputTank.getFluid().copy();
          canPull.amount = inputTank.getCapacity() - inputTank.getFluidAmount();
          canPull.amount = Math.min(canPull.amount, IO_MB_TICK);
          FluidStack drained = target.drain(dir.getOpposite(), canPull, true);
          if(drained != null && drained.amount > 0) {
            inputTank.fill(drained, true);
            tanksDirty = true;
            return res;
          }
        } else {
          //empty input tank
          FluidTankInfo[] infos = target.getTankInfo(dir.getOpposite());
          if(infos != null) {
            for (FluidTankInfo info : infos) {
              if(info.fluid != null && info.fluid.amount > 0) {
                if(canFill(dir, info.fluid.getFluid())) {
                  FluidStack canPull = info.fluid.copy();
                  canPull.amount = Math.min(IO_MB_TICK, canPull.amount);
                  FluidStack drained = target.drain(dir.getOpposite(), canPull, true);
                  if(drained != null && drained.amount > 0) {
                    inputTank.fill(drained, true);
                    tanksDirty = true;
                    return res;
                  }
View Full Code Here

TOP

Related Classes of net.minecraftforge.fluids.FluidStack

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.