Class FluidHandlerItemStackSimple

java.lang.Object
net.neoforged.neoforge.fluids.capability.templates.FluidHandlerItemStackSimple
All Implemented Interfaces:
IFluidHandler, IFluidHandlerItem
Direct Known Subclasses:
FluidHandlerItemStackSimple.Consumable, FluidHandlerItemStackSimple.SwapEmpty

@Deprecated(since="1.21.9", forRemoval=true) public class FluidHandlerItemStackSimple extends Object implements IFluidHandlerItem
Deprecated, for removal: This API element is subject to removal in a future version.
Use ItemAccessFluidHandler, with an override of ItemAccessFluidHandler.update(net.neoforged.neoforge.transfer.item.ItemResource, int, net.neoforged.neoforge.transfer.fluid.FluidResource, int) to return an empty resource if the fluid amount is not exactly 0 or the capacity of the handler.
FluidHandlerItemStackSimple is a template capability provider for ItemStacks. Data is stored in a SimpleFluidContent component.

This implementation only allows item containers to be fully filled or emptied, similar to vanilla buckets.

  • Field Details

    • componentType

      protected final Supplier<DataComponentType<SimpleFluidContent>> componentType
      Deprecated, for removal: This API element is subject to removal in a future version.
    • container

      protected ItemStack container
      Deprecated, for removal: This API element is subject to removal in a future version.
    • capacity

      protected int capacity
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Constructor Details

    • FluidHandlerItemStackSimple

      public FluidHandlerItemStackSimple(Supplier<DataComponentType<SimpleFluidContent>> componentType, ItemStack container, int capacity)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Parameters:
      componentType - The data component type to use for data storage.
      container - The container itemStack, data is stored on it directly as NBT.
      capacity - The maximum capacity of this fluid tank.
  • Method Details

    • getContainer

      public ItemStack getContainer()
      Deprecated, for removal: This API element is subject to removal in a future version.
      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

      public FluidStack getFluid()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setFluid

      protected void setFluid(FluidStack fluid)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • getTanks

      public int getTanks()
      Deprecated, for removal: This API element is subject to removal in a future version.
      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

      public FluidStack getFluidInTank(int tank)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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, FluidStack stack)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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 action)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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.
      action - If SIMULATE, fill will only be simulated.
      Returns:
      Amount of resource that was (or would have been, if simulated) filled.
    • drain

      public FluidStack drain(FluidStack resource, IFluidHandler.FluidAction action)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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

      public FluidStack drain(int maxDrain, IFluidHandler.FluidAction action)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • canDrainFluidType

      public boolean canDrainFluidType(FluidStack fluid)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setContainerToEmpty

      protected void setContainerToEmpty()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Override this method for special handling. Can be used to swap out the container's item for a different one with "container.setItem". Can be used to destroy the container with "container.stackSize--"