Interface IFluidHandler

    • Method Detail

      • getTanks

        int getTanks()
        Returns the number of fluid storage units ("tanks") available
        Returns:
        The number of tanks available
      • getFluidInTank

        @Nonnull
        FluidStack getFluidInTank​(int tank)
        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

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

        int getTankCapacity​(int tank)
        Retrieves the maximum fluid amount for a given tank.
        Parameters:
        tank - Tank to query.
        Returns:
        The maximum fluid amount held by the tank.
      • isFluidValid

        boolean isFluidValid​(int tank,
                             @Nonnull
                             FluidStack stack)
        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.
        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

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

        @Nonnull
        FluidStack drain​(FluidStack resource,
                         IFluidHandler.FluidAction action)
        Drains fluid out of internal tanks, distribution is left entirely to the 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
        FluidStack drain​(int maxDrain,
                         IFluidHandler.FluidAction action)
        Drains fluid out of internal tanks, distribution is left entirely to the IFluidHandler.

        This method is not Fluid-sensitive.

        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.