Class ForgeFluidHandlerAdapter

java.lang.Object
com.hbm_m.api.fluids.ForgeFluidHandlerAdapter
All Implemented Interfaces:
IFluidConnectorMK2, IFluidProviderMK2, IFluidReceiverMK2, IFluidStandardReceiverMK2, IFluidStandardSenderMK2, IFluidStandardTransceiverMK2, IFluidUserMK2, NodeNet.ILoadedEntry

public class ForgeFluidHandlerAdapter extends Object implements IFluidStandardTransceiverMK2
Адаптер: оборачивает соседний BlockEntity с Forge IFluidHandler как MK2-транзивер. Используется FluidDuctBlockEntity для регистрации обычных машин в жидкостной сети. Поддерживает только pressure=0 (Forge IFluidHandler не знает о давлении).
  • Field Summary

    Fields inherited from interface com.hbm_m.api.fluids.IFluidUserMK2

    DEFAULT_PRESSURE_RANGE, HIGHEST_VALID_PRESSURE
  • Constructor Summary

    Constructors
    Constructor
    Description
    ForgeFluidHandlerAdapter(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos neighborPos, net.minecraft.core.Direction sideOfNeighborFacingDuct, net.minecraft.world.level.material.Fluid targetFluid)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    canConnect(net.minecraft.world.level.material.Fluid fluid, net.minecraft.core.Direction fromDir)
    Может ли этот коннектор принимать/отдавать жидкость указанного типа с указанной стороны.
    boolean
    Объект создаётся каждый раз при необходимости, идентичность определяется по (pos, dir, fluid).
    Все баки этой машины.
    long
    getDemand(net.minecraft.world.level.material.Fluid fluid, int pressure)
    Сколько жидкости этого типа/давления можно принять.
    long
    getFluidAvailable(net.minecraft.world.level.material.Fluid fluid, int pressure)
    Сколько жидкости этого типа/давления доступно для передачи.
    Как в 1.7.10 TileEntityMachineFluidTank#getFluidPriority: цистерна в режиме «Буфер» получает низкий приоритет приёма, чтобы обычные приёмники (ввод/вывод) забирали жидкость первыми.
    int[]
    getProvidingPressureRange(net.minecraft.world.level.material.Fluid fluid)
    Диапазон давлений [min, max], которые этот провайдер может отдавать.
    int[]
    getReceivingPressureRange(net.minecraft.world.level.material.Fluid fluid)
    Диапазон давлений, которые этот получатель принимает.
     
     
    int
     
    boolean
    isInfiniteNetworkSink(net.minecraft.world.level.material.Fluid fluid)
    Флаг для сетевого обхода балансировщика: этот получатель должен рассматриваться как "бесконечный сток/утилизатор" для данного типа жидкости.
    boolean
    isInfiniteNetworkSource(net.minecraft.world.level.material.Fluid fluid)
    Флаг для сетевого обхода балансировщика: этот провайдер должен рассматриваться как "бесконечный источник" для данного типа жидкости.
    boolean
     
    long
    transferFluid(net.minecraft.world.level.material.Fluid fluid, int pressure, long amount)
    Принять amount единиц жидкости.
    void
    useUpFluid(net.minecraft.world.level.material.Fluid fluid, int pressure, long amount)
    Снять указанное количество жидкости из источника.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.hbm_m.api.fluids.IFluidProviderMK2

    getProviderSpeed

    Methods inherited from interface com.hbm_m.api.fluids.IFluidReceiverMK2

    getReceiverSpeed, trySubscribe

    Methods inherited from interface com.hbm_m.api.fluids.IFluidStandardSenderMK2

    tryProvide, tryProvide, tryProvide
  • Constructor Details

    • ForgeFluidHandlerAdapter

      public ForgeFluidHandlerAdapter(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos neighborPos, net.minecraft.core.Direction sideOfNeighborFacingDuct, net.minecraft.world.level.material.Fluid targetFluid)
  • Method Details

    • isLoaded

      public boolean isLoaded()
      Specified by:
      isLoaded in interface NodeNet.ILoadedEntry
    • canConnect

      public boolean canConnect(net.minecraft.world.level.material.Fluid fluid, net.minecraft.core.Direction fromDir)
      Description copied from interface: IFluidConnectorMK2
      Может ли этот коннектор принимать/отдавать жидкость указанного типа с указанной стороны.
      Specified by:
      canConnect in interface IFluidConnectorMK2
      Parameters:
      fluid - тип жидкости
      fromDir - направление ОТ ЭТОГО узла к соседу (сторона, через которую идёт соединение)
    • isInfiniteNetworkSource

      public boolean isInfiniteNetworkSource(net.minecraft.world.level.material.Fluid fluid)
      Description copied from interface: IFluidProviderMK2
      Флаг для сетевого обхода балансировщика: этот провайдер должен рассматриваться как "бесконечный источник" для данного типа жидкости. Сеть может использовать это, чтобы заполнить всех получателей за один тик. По умолчанию выключено.
      Specified by:
      isInfiniteNetworkSource in interface IFluidProviderMK2
    • isInfiniteNetworkSink

      public boolean isInfiniteNetworkSink(net.minecraft.world.level.material.Fluid fluid)
      Description copied from interface: IFluidReceiverMK2
      Флаг для сетевого обхода балансировщика: этот получатель должен рассматриваться как "бесконечный сток/утилизатор" для данного типа жидкости. Сеть может использовать это, чтобы опустошить всех провайдеров за один тик. По умолчанию выключено.
      Specified by:
      isInfiniteNetworkSink in interface IFluidReceiverMK2
    • getAllTanks

      public FluidTank[] getAllTanks()
      Description copied from interface: IFluidUserMK2
      Все баки этой машины. Используется для display/debug.
      Specified by:
      getAllTanks in interface IFluidUserMK2
    • getSendingTanks

      public FluidTank[] getSendingTanks()
      Specified by:
      getSendingTanks in interface IFluidStandardSenderMK2
    • getFluidAvailable

      public long getFluidAvailable(net.minecraft.world.level.material.Fluid fluid, int pressure)
      Description copied from interface: IFluidProviderMK2
      Сколько жидкости этого типа/давления доступно для передачи.
      Specified by:
      getFluidAvailable in interface IFluidProviderMK2
      Specified by:
      getFluidAvailable in interface IFluidStandardSenderMK2
    • useUpFluid

      public void useUpFluid(net.minecraft.world.level.material.Fluid fluid, int pressure, long amount)
      Description copied from interface: IFluidProviderMK2
      Снять указанное количество жидкости из источника.
      Specified by:
      useUpFluid in interface IFluidProviderMK2
      Specified by:
      useUpFluid in interface IFluidStandardSenderMK2
    • getProvidingPressureRange

      public int[] getProvidingPressureRange(net.minecraft.world.level.material.Fluid fluid)
      Description copied from interface: IFluidProviderMK2
      Диапазон давлений [min, max], которые этот провайдер может отдавать.
      Specified by:
      getProvidingPressureRange in interface IFluidProviderMK2
      Specified by:
      getProvidingPressureRange in interface IFluidStandardSenderMK2
    • getReceivingTanks

      public FluidTank[] getReceivingTanks()
      Specified by:
      getReceivingTanks in interface IFluidStandardReceiverMK2
    • getDemand

      public long getDemand(net.minecraft.world.level.material.Fluid fluid, int pressure)
      Description copied from interface: IFluidReceiverMK2
      Сколько жидкости этого типа/давления можно принять.
      Specified by:
      getDemand in interface IFluidReceiverMK2
      Specified by:
      getDemand in interface IFluidStandardReceiverMK2
    • getFluidPriority

      public ConnectionPriority getFluidPriority()
      Как в 1.7.10 TileEntityMachineFluidTank#getFluidPriority: цистерна в режиме «Буфер» получает низкий приоритет приёма, чтобы обычные приёмники (ввод/вывод) забирали жидкость первыми.
      Specified by:
      getFluidPriority in interface IFluidReceiverMK2
    • transferFluid

      public long transferFluid(net.minecraft.world.level.material.Fluid fluid, int pressure, long amount)
      Description copied from interface: IFluidReceiverMK2
      Принять amount единиц жидкости.
      Specified by:
      transferFluid in interface IFluidReceiverMK2
      Specified by:
      transferFluid in interface IFluidStandardReceiverMK2
      Returns:
      остаток, который не удалось принять (0 = всё принято)
    • getReceivingPressureRange

      public int[] getReceivingPressureRange(net.minecraft.world.level.material.Fluid fluid)
      Description copied from interface: IFluidReceiverMK2
      Диапазон давлений, которые этот получатель принимает.
      Specified by:
      getReceivingPressureRange in interface IFluidReceiverMK2
      Specified by:
      getReceivingPressureRange in interface IFluidStandardReceiverMK2
    • equals

      public boolean equals(Object o)
      Объект создаётся каждый раз при необходимости, идентичность определяется по (pos, dir, fluid).
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object