Class FluidNet


public class FluidNet extends NodeNet<IFluidReceiverMK2,IFluidProviderMK2,FluidNode>
Жидкостная сеть — порт FluidNetMK2 из 1.7.10. Алгоритм передачи (per tick): 1. setupFluidProviders: собрать доступные объёмы с учётом pressure/speed, убрать устаревшие. 2. setupFluidReceivers: собрать спрос с учётом pressure/priority/speed, убрать устаревшие. 3. transferFluid: пропорциональное распределение по приоритетам, 100-итерационный добор остатка. 4. cleanUp: сброс временных массивов.
  • 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

      public List<com.mojang.datafixers.util.Pair<IFluidProviderMK2,Long>>[] providers
    • fluidDemand

      public long[][] fluidDemand
    • receivers

      public List<com.mojang.datafixers.util.Pair<IFluidReceiverMK2,Long>>[][] receivers
  • Constructor Details

    • FluidNet

      public FluidNet(net.minecraft.world.level.material.Fluid type)
  • Method Details

    • resetTrackers

      public void resetTrackers()
      Overrides:
      resetTrackers in class NodeNet<IFluidReceiverMK2,IFluidProviderMK2,FluidNode>
    • update

      public void update()
      Specified by:
      update in class NodeNet<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()