Package com.hbm_m.api.fluids
Class FluidNet
java.lang.Object
com.hbm_m.api.network.NodeNet<IFluidReceiverMK2,IFluidProviderMK2,FluidNode>
com.hbm_m.api.fluids.FluidNet
Жидкостная сеть — порт FluidNetMK2 из 1.7.10.
Алгоритм передачи (per tick):
1. setupFluidProviders: собрать доступные объёмы с учётом pressure/speed, убрать устаревшие.
2. setupFluidReceivers: собрать спрос с учётом pressure/priority/speed, убрать устаревшие.
3. transferFluid: пропорциональное распределение по приоритетам, 100-итерационный добор остатка.
4. cleanUp: сброс временных массивов.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.hbm_m.api.network.NodeNet
NodeNet.ILoadedEntry -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static longlong[]long[][]longСуммарный объём, переданный за последний тик (для gauge/debug).List<com.mojang.datafixers.util.Pair<IFluidProviderMK2,Long>>[] List<com.mojang.datafixers.util.Pair<IFluidReceiverMK2,Long>>[][] protected static final intprotected final net.minecraft.world.level.material.FluidFields inherited from class com.hbm_m.api.network.NodeNet
links, providerEntries, RAND, receiverEntries, valid -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcleanUp()void"Мгновенный" слив: за один тик опустошить всех провайдеров, которые вообще могут отдавать жидкость.void"Мгновенная" заливка: за один тик заполнить всех получателей, которые вообще могут принять жидкость.net.minecraft.world.level.material.FluidgetType()voidvoidvoidvoidvoidupdate()Methods inherited from class com.hbm_m.api.network.NodeNet
addProvider, addReceiver, destroy, forceJoinLink, invalidate, isBadLink, isProvider, isSubscribed, isValid, joinLink, joinNetworks, leaveLink, removeProvider, removeReceiver
-
Field Details
-
fluidTracker
public long fluidTrackerСуммарный объём, переданный за последний тик (для gauge/debug). -
TIMEOUT
protected static final int TIMEOUT- See Also:
-
currentTime
protected static long currentTime -
type
protected final net.minecraft.world.level.material.Fluid type -
fluidAvailable
public long[] fluidAvailable -
providers
-
fluidDemand
public long[][] fluidDemand -
receivers
-
-
Constructor Details
-
FluidNet
public FluidNet(net.minecraft.world.level.material.Fluid type)
-
-
Method Details
-
resetTrackers
public void resetTrackers()- Overrides:
resetTrackersin classNodeNet<IFluidReceiverMK2,IFluidProviderMK2, FluidNode>
-
update
public void update()- Specified by:
updatein classNodeNet<IFluidReceiverMK2,IFluidProviderMK2, FluidNode>
-
setupFluidProviders
public void setupFluidProviders() -
setupFluidReceivers
public void setupFluidReceivers() -
transferFluid
public void transferFluid() -
cleanUp
public void cleanUp() -
forceFillAllReceivers
public void forceFillAllReceivers()"Мгновенная" заливка: за один тик заполнить всех получателей, которые вообще могут принять жидкость. Используется для бесконечных бочек/источников, чтобы не зависеть от балансировщика/анти-осцилляции. Важно: намеренно игнорирует provider/receiver speed и приоритеты — работает как "infinite source". -
forceDrainAllProviders
public void forceDrainAllProviders()"Мгновенный" слив: за один тик опустошить всех провайдеров, которые вообще могут отдавать жидкость. Используется для бесконечных бочек-утилизаторов (void sink), чтобы не зависеть от балансировщика. Важно: намеренно игнорирует speed и приоритеты — работает как "void". -
getType
public net.minecraft.world.level.material.Fluid getType()
-