当前位置: 首页>>代码示例>>Java>>正文


Java FluidUtil类代码示例

本文整理汇总了Java中com.enderio.core.common.util.FluidUtil的典型用法代码示例。如果您正苦于以下问题:Java FluidUtil类的具体用法?Java FluidUtil怎么用?Java FluidUtil使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


FluidUtil类属于com.enderio.core.common.util包,在下文中一共展示了FluidUtil类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: onBlockActivated

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float par7, float par8, float par9) {

  TileEntity te = world.getTileEntity(x, y, z);

  if (entityPlayer.isSneaking()) {
    return false;
  }

  if (te instanceof ITankAccess) {
    if (FluidUtil.fillInternalTankFromPlayerHandItem(world, x, y, z, entityPlayer, (ITankAccess) te)) {
      return true;
    }
    if (FluidUtil.fillPlayerHandItemFromInternalTank(world, x, y, z, entityPlayer, (ITankAccess) te)) {
      return true;
    }
  }

  return openGui(world, x, y, z, entityPlayer, side);
}
 
开发者ID:SleepyTrousers,项目名称:EnderCore,代码行数:21,代码来源:BlockEnder.java

示例2: fillEmptyContainer

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
private boolean fillEmptyContainer() {
  FluidAndStackResult fill = FluidUtil.tryFillContainer(inventory[0], getOutputTanks()[0].getFluid());
  if (fill.result.fluidStack == null) {
    return false;
  }

  if (inventory[1] != null) {
    if (inventory[1].isStackable() && ItemUtil.areStackMergable(inventory[1], fill.result.itemStack)
        && inventory[1].stackSize < inventory[1].getMaxStackSize()) {
      fill.result.itemStack.stackSize += inventory[1].stackSize;
    } else {
      return false;
    }
  }

  getOutputTanks()[0].setFluid(fill.remainder.fluidStack);
  setInventorySlotContents(0, fill.remainder.itemStack);
  setInventorySlotContents(1, fill.result.itemStack);

  setTanksDirty();
  markDirty();
  return false;
}
 
开发者ID:HenryLoenwind,项目名称:EnderIOAddons,代码行数:24,代码来源:TileDrain.java

示例3: onBlockActivated

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int par6, float par7, float par8, float par9) {

  TileEntity te = world.getTileEntity(x, y, z);
  if (!(te instanceof TileDrain)) {
    return super.onBlockActivated(world, x, y, z, entityPlayer, par6, par7, par8, par9);
  }

  TileDrain drain = (TileDrain) te;
  ItemStack item = entityPlayer.inventory.getCurrentItem();
  if (item == null) {
    return super.onBlockActivated(world, x, y, z, entityPlayer, par6, par7, par8, par9);
  }

  //now check for empty fluid containers to fill
  if (FluidUtil.fillPlayerHandItemFromInternalTank(world, x, y, z, entityPlayer, drain)) {
    return true;
  }

  return super.onBlockActivated(world, x, y, z, entityPlayer, par6, par7, par8, par9);
}
 
开发者ID:HenryLoenwind,项目名称:EnderIOAddons,代码行数:22,代码来源:BlockDrain.java

示例4: onBlockActivated

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
@Override
public boolean onBlockActivated(@Nonnull World world, @Nonnull BlockPos pos, @Nonnull IBlockState state, @Nonnull EntityPlayer entityPlayer,
    @Nonnull EnumHand hand, @Nonnull EnumFacing side, float hitX, float hitY, float hitZ) {
  if (!entityPlayer.isSneaking()) {
    TileReservoir tank = getTileEntity(world, pos);
    if (tank != null) {
      if (ToolUtil.isToolEquipped(entityPlayer, hand)) {
        tank.setAutoEject(!tank.isAutoEject());
        world.notifyBlockUpdate(pos, state, state, 3);
        return true;
      }
      if (tank.tank.getAvailableSpace() >= Fluid.BUCKET_VOLUME && FluidUtil.fillInternalTankFromPlayerHandItem(world, pos, entityPlayer, hand, tank)) {
        return true;
      } else if (!tank.tank.isFull()
          && FluidUtil.fillInternalTankFromPlayerHandItem(world, pos, entityPlayer, hand, new ReservoirTankWrapper(tank, world, pos))) {
        return true;
      }
      if (FluidUtil.fillPlayerHandItemFromInternalTank(world, pos, entityPlayer, hand, tank)) {
        return true;
      }
    }
  } else if (ToolUtil.breakBlockWithTool(this, world, pos, side, entityPlayer, hand, permissionNodeWrenching)) {
    return true;
  }
  return false; // super also has fluid transfer code, avoid that
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:27,代码来源:BlockReservoir.java

示例5: render

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
public boolean render(@Nonnull ItemStack stack, int xPosition, int yPosition, int barOffset, boolean alwaysShow) {
  IFluidHandler cap = FluidUtil.getFluidHandlerCapability(stack);
  if (cap == null || cap.getTankProperties() == null || cap.getTankProperties().length <= 0) {
    return false;
  }
  IFluidTankProperties tank = cap.getTankProperties()[0];
  if (tank == null || tank.getCapacity() <= 0) {
    return false;
  }
  int maxFluid = tank.getCapacity();
  FluidStack fluidStack = tank.getContents();
  int fluidAmount = fluidStack == null ? 0 : fluidStack.amount;
  if (alwaysShow || shouldShowBar(maxFluid, fluidAmount)) {
    double level = (double) fluidAmount / (double) maxFluid;
    boolean up = stack.getItem().showDurabilityBar(stack);
    boolean top = stack.getCount() != 1;
    render(level, xPosition, yPosition, top ? 12 - barOffset : up ? 2 + barOffset : barOffset, (barOffset & 1) == 0);
    return true;
  }
  return false;
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:22,代码来源:PowerBarOverlayRenderHelper.java

示例6: matches

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
@Override
public boolean matches(@Nonnull InventoryCrafting inv, @Nonnull World worldIn) {

  boolean foundStick = false;
  boolean foundFluid = false;
  for (int i = 0; i < inv.getSizeInventory() && (!foundStick || !foundFluid); i++) {
    ItemStack stack = inv.getStackInSlot(i);
    if (Prep.isValid(stack)) {
      foundStick |= isStick(stack);
      if (!foundFluid) {
        final FluidStack fluidStack = FluidUtil.tryDrainContainer(stack, new NutDistTank()).result.fluidStack;
        if (fluidStack != null && fluidStack.amount >= Fluid.BUCKET_VOLUME) {
          foundFluid = true;
        }
      }

    }
  }
  return foundStick && foundFluid;
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:21,代码来源:NutritiousStickRecipe.java

示例7: addDetailedEntries

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
@Override
public void addDetailedEntries(@Nonnull ItemStack itemstack, @Nullable EntityPlayer entityplayer, @Nonnull List<String> list, boolean flag) {
  FluidStack fluid = FluidUtil.getFluidTypeFromItem(itemstack);
  if (fluid != null) {
    IFluidFuel fuel = FluidFuelRegister.instance.getFuel(fluid);
    if (fuel != null) {
      list.add(Lang.FUEL_HEADING.get());
      list.add(TextFormatting.ITALIC + " " + LangPower.RFt(fuel.getPowerPerCycle()));
      list.add(TextFormatting.ITALIC + " " + Lang.FUEL_BURNTIME.get(fuel.getTotalBurningTime()));
    } else {
      IFluidCoolant coolant = FluidFuelRegister.instance.getCoolant(fluid);
      if (coolant != null) {
        list.add(Lang.COOLANT_HEADING.get());
        list.add(TextFormatting.ITALIC + " " + Lang.COOLANT_DEGREES.get(LangPower.format(coolant.getDegreesCoolingPerMB(100) * 1000)));
      }
    }
  }
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:19,代码来源:TooltipHandlerFluid.java

示例8: doPush

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
@Override
protected boolean doPush(@Nullable ForgeDirection dir) {
  if (dir == null || isSideDisabled(dir.ordinal())) {
    return false;
  }

  boolean res = super.doPush(dir);
  if (outputTank.getFluidAmount() > 0) {

    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;
          return res;
        }
      }
    }

  }
  return res;
}
 
开发者ID:HenryLoenwind,项目名称:EnderIOAddons,代码行数:28,代码来源:TileWaterworks.java

示例9: drainFullContainer

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
private boolean drainFullContainer() {
  FluidAndStackResult fill = FluidUtil.tryDrainContainer(inventory[getSlotDefinition().getMinInputSlot()], this);
  if (fill.result.fluidStack == null) {
    return false;
  }

  int slot = getSlotDefinition().getMinOutputSlot();

  if (inventory[slot] != null && fill.result.itemStack != null) {
    if (inventory[slot].isStackable() && ItemUtil.areStackMergable(inventory[slot], fill.result.itemStack)
        && inventory[slot].stackSize < inventory[slot].getMaxStackSize()) {
      fill.result.itemStack.stackSize += inventory[slot].stackSize;
    } else {
      return false;
    }
  }

  getInputTank(fill.result.fluidStack).setFluid(fill.remainder.fluidStack);
  setInventorySlotContents(getSlotDefinition().getMinInputSlot(), fill.remainder.itemStack);
  if (fill.result.itemStack != null) {
    setInventorySlotContents(slot, fill.result.itemStack);
  }

  setTanksDirty();
  markDirty();
  return false;
}
 
开发者ID:HenryLoenwind,项目名称:EnderIOAddons,代码行数:28,代码来源:TileVoidTank.java

示例10: doPush

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
@Override
protected boolean doPush(@Nullable ForgeDirection dir) {

  if (dir == null || isSideDisabled(dir.ordinal())) {
    return false;
  }

  boolean res = super.doPush(dir);
  if(tank.getFluidAmount() > 0) {

    BlockCoord loc = getLocation().getLocation(dir);
    IFluidHandler target = FluidUtil.getFluidHandler(worldObj, loc);
    if(target != null) {
      if(target.canFill(dir.getOpposite(), tank.getFluid().getFluid())) {
        FluidStack push = tank.getFluid().copy();
        push.amount = Math.min(push.amount, IO_MB_TICK);
        int filled = target.fill(dir.getOpposite(), push, true);
        if(filled > 0) {
          tank.drain(filled, true);
          tankDirty = true;
          return res;
        }
      }
    }

  }
  return res;
}
 
开发者ID:HenryLoenwind,项目名称:EnderIOAddons,代码行数:29,代码来源:TileDrain.java

示例11: isMachineItemValidForSlot

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
@Override
public boolean isMachineItemValidForSlot(int i, @Nonnull ItemStack item) {
  if (canVoidItems() && voidMode == VoidMode.ALWAYS && i < 2) {
    return false;
  }
  if (i == 0) {
    return FluidUtil.getFluidTypeFromItem(item) != null;
  } else if (i == 1) {
    return FluidUtil.hasEmptyCapacity(item) || canBeMended(item);
  } else if (i == 2 && canVoidItems()) {
    return voidMode == VoidMode.ALWAYS || (voidMode == VoidMode.NEVER ? false : !FluidUtil.isFluidContainer(item));
  }
  return false;
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:15,代码来源:TileTank.java

示例12: fillEmptyContainer

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
private boolean fillEmptyContainer() {
  final int input = getSlotDefinition().getMinInputSlot() + 1;
  final ItemStack inputStack = getStackInSlot(input);
  if (Prep.isInvalid(inputStack) || tank.isEmpty()) {
    return false;
  }

  final FluidTank outputTank = getOutputTanks()[0];
  final FluidAndStackResult fill = FluidUtil.tryFillContainer(inputStack, outputTank.getFluid());
  if (fill.result.fluidStack == null) {
    return false;
  }

  final int output = getSlotDefinition().getMaxOutputSlot();
  final ItemStack outputStack = getStackInSlot(output);

  if (Prep.isValid(outputStack) && Prep.isValid(fill.result.itemStack)) {
    if (outputStack.isStackable() && ItemUtil.areStackMergable(outputStack, fill.result.itemStack)
        && (fill.result.itemStack.getCount() + outputStack.getCount()) <= outputStack.getMaxStackSize()) {
      fill.result.itemStack.grow(outputStack.getCount());
    } else {
      return false;
    }
  }

  outputTank.setFluid(fill.remainder.fluidStack);
  setInventorySlotContents(input, fill.remainder.itemStack);
  setInventorySlotContents(output, fill.result.itemStack);

  setTanksDirty();
  markDirty();
  return false;
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:34,代码来源:TileTank.java

示例13: drainFullContainer

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
private boolean drainFullContainer() {
  final int input = getSlotDefinition().getMinInputSlot();
  final ItemStack inputStack = getStackInSlot(input);
  if (Prep.isInvalid(inputStack) || tank.isFull()) {
    return false;
  }

  final FluidAndStackResult fill = FluidUtil.tryDrainContainer(inputStack, this);
  if (fill.result.fluidStack == null) {
    return false;
  }

  final int output = getSlotDefinition().getMinOutputSlot();
  final ItemStack outputStack = getStackInSlot(output);

  if (Prep.isValid(outputStack) && Prep.isValid(fill.result.itemStack)) {
    if (outputStack.isStackable() && ItemUtil.areStackMergable(outputStack, fill.result.itemStack)
        && (fill.result.itemStack.getCount() + outputStack.getCount()) <= outputStack.getMaxStackSize()) {
      fill.result.itemStack.grow(outputStack.getCount());
    } else {
      return false;
    }
  }

  getInputTank(fill.result.fluidStack).setFluid(fill.remainder.fluidStack);
  setInventorySlotContents(input, fill.remainder.itemStack);
  if (Prep.isValid(fill.result.itemStack)) {
    setInventorySlotContents(output, fill.result.itemStack);
  }

  setTanksDirty();
  markDirty();
  return false;
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:35,代码来源:TileTank.java

示例14: setFluid

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
public boolean setFluid(int index, ItemStack stack) {
  if(stack == null) {
    return setFluid(index, (FluidStack) null);
  }
  FluidStack f = FluidUtil.getFluidTypeFromItem(stack);
  if (f == null || f.getFluid() == null) {
    return false;
  }
  return setFluid(index, f);
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:11,代码来源:FluidFilter.java

示例15: canFill

import com.enderio.core.common.util.FluidUtil; //导入依赖的package包/类
@Override
public boolean canFill(EnumFacing from, FluidStack fluid) {
  if (!getConnectionMode(from).acceptsInput() || network == null || fluid == null || fluid.amount <= 0) {
    return false;
  }
  if (tank.getFluid() == null) {
    return true;
  }
  if (fluid != null && FluidUtil.areFluidsTheSame(fluid.getFluid(), tank.getFluid().getFluid())) {
    return true;
  }
  return false;
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:14,代码来源:LiquidConduit.java


注:本文中的com.enderio.core.common.util.FluidUtil类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。