@Override public boolean canPutStack(ItemStack stack) { IFluidHandlerItem fluidHandlerItem = FluidUtil.getFluidHandler(stack); return fluidHandlerItem != null && (!requireFilledContainer || fluidHandlerItem.getTankProperties()[0].getContents() != null); } }
public static boolean hasEmptyCapacity(@Nonnull ItemStack stack) { IFluidHandlerItem handler = getFluidHandlerCapability(stack); if (handler == null) { return false; } IFluidTankProperties[] props = handler.getTankProperties(); if (props == null) { return false; } for (IFluidTankProperties tank : props) { int cap = tank.getCapacity(); FluidStack contents = tank.getContents(); if (cap >= 0 && (contents == null || contents.amount < cap)) { return true; } } return false; }
@Override public String apply(ItemStack itemStack) { IFluidHandlerItem fluidHandler = itemStack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null); if(fluidHandler != null) { IFluidTankProperties fluidTankProperties = fluidHandler.getTankProperties()[0]; FluidStack fluid = fluidTankProperties.getContents(); return String.format("%d;f=%s", itemStack.getMetadata(), fluid == null ? "empty" : fluid.getFluid().getName()); } return String.valueOf(itemStack.getMetadata()); } }
@Override public String getItemStackDisplayName(final ItemStack stack) { String unlocalizedName = this.getUnlocalizedNameInefficiently(stack); IFluidHandlerItem fluidHandler = FluidUtil.getFluidHandler(stack); FluidStack fluidStack = fluidHandler.getTankProperties()[0].getContents(); // If the bucket is empty, translate the unlocalised name directly if (fluidStack == null || fluidStack.amount <= 0) { unlocalizedName += ".name"; } else { unlocalizedName += ".filled.name"; } return I18n.translateToLocal(unlocalizedName).trim(); }
public static FluidIdentifier get(ItemIdentifierStack stack) { FluidStack f = null; FluidIdentifierStack fstack = SimpleServiceLocator.logisticsFluidManager.getFluidFromContainer(stack); if(fstack != null) { f = fstack.makeFluidStack(); } if(f == null) { ItemStack itemStack = stack.unsafeMakeNormalStack(); if(itemStack.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null)) { IFluidHandlerItem capability = itemStack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null); if(capability != null) { f = Arrays.stream(capability.getTankProperties()).map(IFluidTankProperties::getContents).findFirst().orElse(null); } } } if (f == null) { f = FluidUtil.getFluidContained(stack.unsafeMakeNormalStack()); } if (f == null) { return null; } return FluidIdentifier.get(f); }
.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null); if (fluidHandler != null) { IFluidTankProperties fluidTankProperties = fluidHandler.getTankProperties()[0]; FluidStack fluid = fluidTankProperties.getContents(); if (fluid != null) {
private boolean fillHandler() { IFluidHandlerItem handler = inventory[1].getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null); int filled = tank.getFluid() == null ? 0 : handler.fill(new FluidStack(tank.getFluid(), Math.min(tank.getFluidAmount(), Fluid.BUCKET_VOLUME)), true); IFluidTankProperties[] tankProperties = handler.getTankProperties(); if (tankProperties == null || tankProperties.length < 1) { return true; } if (filled > 0) { tank.drain(filled, true); inventory[1] = handler.getContainer(); return tankProperties[0].getContents() != null && tankProperties[0].getContents().amount >= tankProperties[0].getCapacity(); } return true; }
int drained = drainStack == null ? 0 : drainStack.amount; IFluidTankProperties[] tankProperties = handler.getTankProperties();
private void processStartHandler() { IFluidHandlerItem handler = inventory[1].getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null); IFluidTankProperties[] tankProperties = handler.getTankProperties(); FluidStack handlerStack = tankProperties[0].getContents(); FluidStack prevStack = renderFluid.copy(); if (!extractMode) { renderFluid = tank.getFluid() == null ? null : tank.getFluid().copy(); } else { renderFluid = tank.getFluid() == null ? handlerStack == null ? null : handlerStack.copy() : tank.getFluid().copy(); } if (renderFluid == null) { renderFluid = new FluidStack(FluidRegistry.WATER, 0); } else { renderFluid.amount = 0; } processMax = TransposerManager.DEFAULT_ENERGY * energyMod / ENERGY_BASE; processRem = processMax; if (!FluidHelper.isFluidEqual(prevStack, renderFluid)) { sendFluidPacket(); } }
for(IFluidTankProperties properties : fluidHandlerItem.getTankProperties()) { FluidStack contents = properties.getContents(); player.sendMessage(new TextComponentTranslation("gregtech.command.util.hand.fluid",