类 FluidHandlerItemStackSimple

java.lang.Object
net.neoforged.neoforge.fluids.capability.templates.FluidHandlerItemStackSimple
所有已实现的接口:
IFluidHandler, IFluidHandlerItem
直接已知子类:
FluidHandlerItemStackSimple.Consumable, FluidHandlerItemStackSimple.SwapEmpty

public class FluidHandlerItemStackSimple extends Object implements IFluidHandlerItem
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.

  • 字段详细资料

  • 构造器详细资料

    • FluidHandlerItemStackSimple

      public FluidHandlerItemStackSimple(Supplier<DataComponentType<SimpleFluidContent>> componentType, ItemStack container, int capacity)
      参数:
      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.
  • 方法详细资料

    • getContainer

      public ItemStack getContainer()
      从接口复制的说明: 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.
      指定者:
      getContainer 在接口中 IFluidHandlerItem
    • getFluid

      public FluidStack getFluid()
    • setFluid

      protected void setFluid(FluidStack fluid)
    • getTanks

      public int getTanks()
      从接口复制的说明: IFluidHandler
      Returns the number of fluid storage units ("tanks") available
      指定者:
      getTanks 在接口中 IFluidHandler
      返回:
      The number of tanks available
    • getFluidInTank

      public FluidStack getFluidInTank(int tank)
      从接口复制的说明: 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

      指定者:
      getFluidInTank 在接口中 IFluidHandler
      参数:
      tank - Tank to query.
      返回:
      FluidStack in a given tank. FluidStack.EMPTY if the tank is empty.
    • getTankCapacity

      public int getTankCapacity(int tank)
      从接口复制的说明: IFluidHandler
      Retrieves the maximum fluid amount for a given tank.
      指定者:
      getTankCapacity 在接口中 IFluidHandler
      参数:
      tank - Tank to query.
      返回:
      The maximum fluid amount held by the tank.
    • isFluidValid

      public boolean isFluidValid(int tank, FluidStack stack)
      从接口复制的说明: 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.
      指定者:
      isFluidValid 在接口中 IFluidHandler
      参数:
      tank - Tank to query for validity
      stack - Stack to test with for validity
      返回:
      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)
      从接口复制的说明: IFluidHandler
      Fills fluid into internal tanks, distribution is left entirely to the IFluidHandler.
      指定者:
      fill 在接口中 IFluidHandler
      参数:
      resource - FluidStack representing the Fluid and maximum amount of fluid to be filled.
      action - If SIMULATE, fill will only be simulated.
      返回:
      Amount of resource that was (or would have been, if simulated) filled.
    • drain

      public FluidStack drain(FluidStack resource, IFluidHandler.FluidAction action)
      从接口复制的说明: IFluidHandler
      Drains fluid out of internal tanks, distribution is left entirely to the IFluidHandler.
      指定者:
      drain 在接口中 IFluidHandler
      参数:
      resource - FluidStack representing the Fluid and maximum amount of fluid to be drained.
      action - If SIMULATE, drain will only be simulated.
      返回:
      FluidStack representing the Fluid and amount that was (or would have been, if simulated) drained.
    • drain

      public FluidStack drain(int maxDrain, IFluidHandler.FluidAction action)
      从接口复制的说明: IFluidHandler
      Drains fluid out of internal tanks, distribution is left entirely to the IFluidHandler.

      This method is not Fluid-sensitive.

      指定者:
      drain 在接口中 IFluidHandler
      参数:
      maxDrain - Maximum amount of fluid to drain.
      action - If SIMULATE, drain will only be simulated.
      返回:
      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 the container's item for a different one with "container.setItem". Can be used to destroy the container with "container.stackSize--"