Class FluidHandlerItemStack

    • Constructor Detail

      • FluidHandlerItemStack

        public FluidHandlerItemStack​(@Nonnull
                                     ItemStack container,
                                     int capacity)
        Parameters:
        container - The container itemStack, data is stored on it directly as NBT.
        capacity - The maximum capacity of this fluid tank.
    • Method Detail

      • getContainer

        @Nonnull
        public ItemStack getContainer()
        Description copied from interface: IFluidHandlerItem
        Get the container currently acted on by this fluid handler. The ItemStack may be different from its initial state, in the case of fluid containers that have different items for their filled and empty states. May be an empty item if the container was drained and is consumable.
        Specified by:
        getContainer in interface IFluidHandlerItem
      • getFluid

        @Nonnull
        public FluidStack getFluid()
      • setFluid

        protected void setFluid​(FluidStack fluid)
      • getTanks

        public int getTanks()
        Description copied from interface: IFluidHandler
        Returns the number of fluid storage units ("tanks") available
        Specified by:
        getTanks in interface IFluidHandler
        Returns:
        The number of tanks available
      • getFluidInTank

        @Nonnull
        public FluidStack getFluidInTank​(int tank)
        Description copied from interface: IFluidHandler
        Returns the FluidStack in a given tank.

        IMPORTANT: This FluidStack MUST NOT be modified. This method is not for altering internal contents. Any implementers who are able to detect modification via this method should throw an exception. It is ENTIRELY reasonable and likely that the stack returned here will be a copy.

        SERIOUSLY: DO NOT MODIFY THE RETURNED FLUIDSTACK

        Specified by:
        getFluidInTank in interface IFluidHandler
        Parameters:
        tank - Tank to query.
        Returns:
        FluidStack in a given tank. FluidStack.EMPTY if the tank is empty.
      • getTankCapacity

        public int getTankCapacity​(int tank)
        Description copied from interface: IFluidHandler
        Retrieves the maximum fluid amount for a given tank.
        Specified by:
        getTankCapacity in interface IFluidHandler
        Parameters:
        tank - Tank to query.
        Returns:
        The maximum fluid amount held by the tank.
      • isFluidValid

        public boolean isFluidValid​(int tank,
                                    @Nonnull
                                    FluidStack stack)
        Description copied from interface: IFluidHandler
        This function is a way to determine which fluids can exist inside a given handler. General purpose tanks will basically always return TRUE for this.
        Specified by:
        isFluidValid in interface IFluidHandler
        Parameters:
        tank - Tank to query for validity
        stack - Stack to test with for validity
        Returns:
        TRUE if the tank can hold the FluidStack, not considering current state. (Basically, is a given fluid EVER allowed in this tank?) Return FALSE if the answer to that question is 'no.'
      • fill

        public int fill​(FluidStack resource,
                        IFluidHandler.FluidAction doFill)
        Description copied from interface: IFluidHandler
        Fills fluid into internal tanks, distribution is left entirely to the IFluidHandler.
        Specified by:
        fill in interface IFluidHandler
        Parameters:
        resource - FluidStack representing the Fluid and maximum amount of fluid to be filled.
        doFill - If SIMULATE, fill will only be simulated.
        Returns:
        Amount of resource that was (or would have been, if simulated) filled.
      • drain

        @Nonnull
        public FluidStack drain​(FluidStack resource,
                                IFluidHandler.FluidAction action)
        Description copied from interface: IFluidHandler
        Drains fluid out of internal tanks, distribution is left entirely to the IFluidHandler.
        Specified by:
        drain in interface IFluidHandler
        Parameters:
        resource - FluidStack representing the Fluid and maximum amount of fluid to be drained.
        action - If SIMULATE, drain will only be simulated.
        Returns:
        FluidStack representing the Fluid and amount that was (or would have been, if simulated) drained.
      • drain

        @Nonnull
        public FluidStack drain​(int maxDrain,
                                IFluidHandler.FluidAction action)
        Description copied from interface: IFluidHandler
        Drains fluid out of internal tanks, distribution is left entirely to the IFluidHandler.

        This method is not Fluid-sensitive.

        Specified by:
        drain in interface IFluidHandler
        Parameters:
        maxDrain - Maximum amount of fluid to drain.
        action - If SIMULATE, drain will only be simulated.
        Returns:
        FluidStack representing the Fluid and amount that was (or would have been, if simulated) drained.
      • canFillFluidType

        public boolean canFillFluidType​(FluidStack fluid)
      • canDrainFluidType

        public boolean canDrainFluidType​(FluidStack fluid)
      • setContainerToEmpty

        protected void setContainerToEmpty()
        Override this method for special handling. Can be used to swap out or destroy the container.
      • getCapability

        @Nonnull
        public <T> LazyOptional<T> getCapability​(@Nonnull
                                                 Capability<T> capability,
                                                 @Nullable
                                                 Direction facing)
        Description copied from interface: ICapabilityProvider
        Retrieves the Optional handler for the capability requested on the specific side. The return value CAN be the same for multiple faces. Modders are encouraged to cache this value, using the listener capabilities of the Optional to be notified if the requested capability get lost.
        Specified by:
        getCapability in interface ICapabilityProvider
        Returns:
        The requested an optional holding the requested capability.