@Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return slot != 0 || (FluidHelper.isFluidHandler(stack) || TransposerManager.isItemValid(stack)); }
public static FluidStack getFluidForFilledItem(ItemStack container) { if (container != null && isFluidHandler(container)) { return getFluidStackFromHandler(container); } return null; }
@Override public boolean isItemValid(ItemStack stack) { return TransposerManager.isItemValid(stack) || FluidHelper.isFluidHandler(stack); }
public static boolean isPlayerHoldingFluidHandler(EntityPlayer player) { return isFluidHandler(player.getHeldItemMainhand()); }
public static FluidStack getFluidStackFromHandler(ItemStack container) { if (isFluidHandler(container)) { IFluidTankProperties[] tank = container.getCapability(FLUID_HANDLER_ITEM, null).getTankProperties(); return tank.length <= 0 ? null : tank[0].getContents(); } return null; }
@Override public boolean onBlockActivatedDelegate(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { TileDynamoBase tile = (TileDynamoBase) world.getTileEntity(pos); if (tile == null || !tile.canPlayerAccess(player)) { return false; } if (tile.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null)) { ItemStack heldItem = player.getHeldItem(hand); IFluidHandler handler = tile.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null); if (FluidHelper.isFluidHandler(heldItem)) { FluidHelper.interactWithHandler(heldItem, handler, player, hand); return true; } } return false; }
@Override public boolean onBlockActivatedDelegate(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { TileMachineBase tile = (TileMachineBase) world.getTileEntity(pos); if (tile == null || !tile.canPlayerAccess(player)) { return false; } if (tile.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null)) { ItemStack heldItem = player.getHeldItem(hand); IFluidHandler handler = tile.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null); if (FluidHelper.isFluidHandler(heldItem)) { FluidHelper.interactWithHandler(heldItem, handler, player, hand); return true; } } return false; }
@Override public void onWornTick(ItemStack stack, EntityLivingBase player) { World world = player.world; if (ServerHelper.isClientWorld(world) || !isActive(stack)) { return; } Iterable<ItemStack> equipment = Iterables.concat(player.getEquipmentAndArmor(), BaublesHelper.getBaubles(player)); for (ItemStack equipmentStack : equipment) { if (equipmentStack.equals(stack) || equipmentStack.getItem() == Items.BUCKET) { continue; } if (FluidHelper.isFluidHandler(equipmentStack)) { IFluidHandlerItem handler = FluidUtil.getFluidHandler(equipmentStack); if (handler != null && getFluid(stack) != null) { drain(stack, handler.fill(new FluidStack(getFluid(stack), Math.min(getFluidAmount(stack), Fluid.BUCKET_VOLUME)), true), true); } } } }
@Override public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isSelected) { if (ServerHelper.isClientWorld(world) || CoreUtils.isFakePlayer(entity) || !isActive(stack)) { return; } Iterable<ItemStack> equipment = Iterables.concat(entity.getEquipmentAndArmor(), BaublesHelper.getBaubles(entity)); for (ItemStack equipmentStack : equipment) { if (equipmentStack.equals(stack) || equipmentStack.getItem() == Items.BUCKET) { continue; } if (FluidHelper.isFluidHandler(equipmentStack)) { IFluidHandlerItem handler = FluidUtil.getFluidHandler(equipmentStack); if (handler != null && getFluid(stack) != null) { drain(stack, handler.fill(new FluidStack(getFluid(stack), Math.min(getFluidAmount(stack), Fluid.BUCKET_VOLUME)), true), true); } } } }
private boolean canStartHandler() { if (!FluidHelper.isFluidHandler(inventory[1])) { hasFluidHandler = false; return false; } if (energyStorage.getEnergyStored() <= 0) { return false; } if (!inventory[2].isEmpty()) { ContainerOverride override = TransposerManager.getContainerOverride(inventory[1]); if (override == null || !inventory[2].isItemEqual(override.getOutput())) { return false; } } IFluidHandlerItem handler = inventory[1].getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null); if (handler == null) { return false; } if (!extractMode) { return tank.getFluid() != null && tank.getFluidAmount() > 0 && handler.fill(new FluidStack(tank.getFluid(), Math.min(tank.getFluidAmount(), Fluid.BUCKET_VOLUME)), false) > 0; } else { return tank.fill(handler.drain(Math.min(tank.getSpace(), Fluid.BUCKET_VOLUME), false), false) > 0; } }
private void transferHandler() { if (hasFluidHandler) { if (inventory[2].isEmpty()) { inventory[2] = ItemHelper.cloneStack(inventory[1], 1); inventory[1] = ItemStack.EMPTY; hasFluidHandler = false; } else { if (ItemHelper.itemsIdentical(inventory[1], inventory[2]) && inventory[1].getMaxStackSize() > 1 && inventory[2].getCount() + 1 <= inventory[2].getMaxStackSize()) { inventory[2].grow(1); inventory[1] = ItemStack.EMPTY; hasFluidHandler = false; } } } if (!hasFluidHandler && FluidHelper.isFluidHandler(inventory[0])) { inventory[1] = ItemHelper.cloneStack(inventory[0], 1); inventory[0].shrink(1); if (inventory[0].getCount() <= 0) { inventory[0] = ItemStack.EMPTY; } hasFluidHandler = true; } }
@Override public boolean onBlockActivatedDelegate(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { TileDeviceBase tile = (TileDeviceBase) world.getTileEntity(pos); if (tile == null || !tile.canPlayerAccess(player)) { return false; } if (ItemHelper.isPlayerHoldingNothing(player)) { if (player.isSneaking() && tile.hasConfigGui() && ServerHelper.isServerWorld(world)) { return tile.openConfigGui(player); } } if (tile.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null)) { ItemStack heldItem = player.getHeldItem(hand); IFluidHandler handler = tile.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null); if (FluidHelper.isFluidHandler(heldItem)) { FluidHelper.interactWithHandler(heldItem, handler, player, hand); return true; } } return false; }
@Override public boolean onBlockActivatedDelegate(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { TileTank tile = (TileTank) world.getTileEntity(pos); if (tile == null || !tile.canPlayerAccess(player)) { return false; } if (ItemHelper.isPlayerHoldingNothing(player)) { if (player.isSneaking()) { tile.setLocked(!tile.isLocked()); if (tile.isLocked()) { world.playSound(null, pos, SoundEvents.UI_BUTTON_CLICK, SoundCategory.BLOCKS, 0.2F, 0.8F); } else { world.playSound(null, pos, SoundEvents.UI_BUTTON_CLICK, SoundCategory.BLOCKS, 0.3F, 0.5F); } return true; } } ItemStack heldItem = player.getHeldItem(hand); IFluidHandler handler = tile.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null); if (FluidHelper.isFluidHandler(heldItem)) { FluidHelper.interactWithHandler(heldItem, handler, player, hand); return true; } return false; }
return false; if (!hasFluidHandler && FluidHelper.isFluidHandler(inventory[0])) { if (!extractMode && TransposerManager.fillRecipeExists(inventory[0], tank.getFluid())) {