Package com.hbm_m.api.fluids
Class ForgeFluidHandlerAdapter
java.lang.Object
com.hbm_m.api.fluids.ForgeFluidHandlerAdapter
- All Implemented Interfaces:
IFluidConnectorMK2,IFluidProviderMK2,IFluidReceiverMK2,IFluidStandardReceiverMK2,IFluidStandardSenderMK2,IFluidStandardTransceiverMK2,IFluidUserMK2,NodeNet.ILoadedEntry
Адаптер: оборачивает соседний 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
ConstructorsConstructorDescriptionForgeFluidHandlerAdapter(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 TypeMethodDescriptionbooleancanConnect(net.minecraft.world.level.material.Fluid fluid, net.minecraft.core.Direction fromDir) Может ли этот коннектор принимать/отдавать жидкость указанного типа с указанной стороны.booleanОбъект создаётся каждый раз при необходимости, идентичность определяется по (pos, dir, fluid).Все баки этой машины.longgetDemand(net.minecraft.world.level.material.Fluid fluid, int pressure) Сколько жидкости этого типа/давления можно принять.longgetFluidAvailable(net.minecraft.world.level.material.Fluid fluid, int pressure) Сколько жидкости этого типа/давления доступно для передачи.Как в 1.7.10TileEntityMachineFluidTank#getFluidPriority: цистерна в режиме «Буфер» получает низкий приоритет приёма, чтобы обычные приёмники (ввод/вывод) забирали жидкость первыми.int[]getProvidingPressureRange(net.minecraft.world.level.material.Fluid fluid) Диапазон давлений [min, max], которые этот провайдер может отдавать.int[]getReceivingPressureRange(net.minecraft.world.level.material.Fluid fluid) Диапазон давлений, которые этот получатель принимает.inthashCode()booleanisInfiniteNetworkSink(net.minecraft.world.level.material.Fluid fluid) Флаг для сетевого обхода балансировщика: этот получатель должен рассматриваться как "бесконечный сток/утилизатор" для данного типа жидкости.booleanisInfiniteNetworkSource(net.minecraft.world.level.material.Fluid fluid) Флаг для сетевого обхода балансировщика: этот провайдер должен рассматриваться как "бесконечный источник" для данного типа жидкости.booleanisLoaded()longtransferFluid(net.minecraft.world.level.material.Fluid fluid, int pressure, long amount) Принятьamountединиц жидкости.voiduseUpFluid(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, waitMethods inherited from interface com.hbm_m.api.fluids.IFluidProviderMK2
getProviderSpeedMethods inherited from interface com.hbm_m.api.fluids.IFluidReceiverMK2
getReceiverSpeed, trySubscribeMethods 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:
isLoadedin interfaceNodeNet.ILoadedEntry
-
canConnect
public boolean canConnect(net.minecraft.world.level.material.Fluid fluid, net.minecraft.core.Direction fromDir) Description copied from interface:IFluidConnectorMK2Может ли этот коннектор принимать/отдавать жидкость указанного типа с указанной стороны.- Specified by:
canConnectin interfaceIFluidConnectorMK2- Parameters:
fluid- тип жидкостиfromDir- направление ОТ ЭТОГО узла к соседу (сторона, через которую идёт соединение)
-
isInfiniteNetworkSource
public boolean isInfiniteNetworkSource(net.minecraft.world.level.material.Fluid fluid) Description copied from interface:IFluidProviderMK2Флаг для сетевого обхода балансировщика: этот провайдер должен рассматриваться как "бесконечный источник" для данного типа жидкости. Сеть может использовать это, чтобы заполнить всех получателей за один тик. По умолчанию выключено.- Specified by:
isInfiniteNetworkSourcein interfaceIFluidProviderMK2
-
isInfiniteNetworkSink
public boolean isInfiniteNetworkSink(net.minecraft.world.level.material.Fluid fluid) Description copied from interface:IFluidReceiverMK2Флаг для сетевого обхода балансировщика: этот получатель должен рассматриваться как "бесконечный сток/утилизатор" для данного типа жидкости. Сеть может использовать это, чтобы опустошить всех провайдеров за один тик. По умолчанию выключено.- Specified by:
isInfiniteNetworkSinkin interfaceIFluidReceiverMK2
-
getAllTanks
Description copied from interface:IFluidUserMK2Все баки этой машины. Используется для display/debug.- Specified by:
getAllTanksin interfaceIFluidUserMK2
-
getSendingTanks
- Specified by:
getSendingTanksin interfaceIFluidStandardSenderMK2
-
getFluidAvailable
public long getFluidAvailable(net.minecraft.world.level.material.Fluid fluid, int pressure) Description copied from interface:IFluidProviderMK2Сколько жидкости этого типа/давления доступно для передачи.- Specified by:
getFluidAvailablein interfaceIFluidProviderMK2- Specified by:
getFluidAvailablein interfaceIFluidStandardSenderMK2
-
useUpFluid
public void useUpFluid(net.minecraft.world.level.material.Fluid fluid, int pressure, long amount) Description copied from interface:IFluidProviderMK2Снять указанное количество жидкости из источника.- Specified by:
useUpFluidin interfaceIFluidProviderMK2- Specified by:
useUpFluidin interfaceIFluidStandardSenderMK2
-
getProvidingPressureRange
public int[] getProvidingPressureRange(net.minecraft.world.level.material.Fluid fluid) Description copied from interface:IFluidProviderMK2Диапазон давлений [min, max], которые этот провайдер может отдавать.- Specified by:
getProvidingPressureRangein interfaceIFluidProviderMK2- Specified by:
getProvidingPressureRangein interfaceIFluidStandardSenderMK2
-
getReceivingTanks
- Specified by:
getReceivingTanksin interfaceIFluidStandardReceiverMK2
-
getDemand
public long getDemand(net.minecraft.world.level.material.Fluid fluid, int pressure) Description copied from interface:IFluidReceiverMK2Сколько жидкости этого типа/давления можно принять.- Specified by:
getDemandin interfaceIFluidReceiverMK2- Specified by:
getDemandin interfaceIFluidStandardReceiverMK2
-
getFluidPriority
Как в 1.7.10TileEntityMachineFluidTank#getFluidPriority: цистерна в режиме «Буфер» получает низкий приоритет приёма, чтобы обычные приёмники (ввод/вывод) забирали жидкость первыми.- Specified by:
getFluidPriorityin interfaceIFluidReceiverMK2
-
transferFluid
public long transferFluid(net.minecraft.world.level.material.Fluid fluid, int pressure, long amount) Description copied from interface:IFluidReceiverMK2Принятьamountединиц жидкости.- Specified by:
transferFluidin interfaceIFluidReceiverMK2- Specified by:
transferFluidin interfaceIFluidStandardReceiverMK2- Returns:
- остаток, который не удалось принять (0 = всё принято)
-
getReceivingPressureRange
public int[] getReceivingPressureRange(net.minecraft.world.level.material.Fluid fluid) Description copied from interface:IFluidReceiverMK2Диапазон давлений, которые этот получатель принимает.- Specified by:
getReceivingPressureRangein interfaceIFluidReceiverMK2- Specified by:
getReceivingPressureRangein interfaceIFluidStandardReceiverMK2
-
equals
Объект создаётся каждый раз при необходимости, идентичность определяется по (pos, dir, fluid). -
hashCode
public int hashCode()
-