Class FluidTank

java.lang.Object
com.hbm_m.inventory.fluid.tank.FluidTank
All Implemented Interfaces:
Cloneable

public class FluidTank extends Object implements Cloneable
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int
     
    protected net.minecraft.world.level.material.Fluid
     
    static final FluidTank[]
     
    protected final net.minecraftforge.fluids.capability.templates.FluidTank
     
    protected final net.minecraftforge.common.util.LazyOptional<net.minecraftforge.fluids.capability.IFluidHandler>
     
    1.7.10 public static final List<FluidLoadingHandler> loadingHandlers: открытый список для регистрации сторонних обработчиков.
    static final Set<net.minecraft.world.item.Item>
    1.7.10 public static final Set<Item> noDualUnload: предметы, которые нельзя выгружать в дуальном режиме.
    protected int
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    FluidTank(int capacity)
     
    FluidTank(net.minecraft.world.level.material.Fluid type, int capacity)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    assignTypeAndZeroFluid(net.minecraft.world.level.material.Fluid newType)
     
    int
    changeTankSize(int size)
     
     
    conform(net.minecraft.world.level.material.Fluid type)
     
    conform(net.minecraft.world.level.material.Fluid type, int pressure)
     
    void
    deserialize(net.minecraft.network.FriendlyByteBuf buf)
     
    int
    drainInternal(int amountMb)
     
    int
    drainMb(int amountMb)
     
    void
    fill(int amount)
     
    int
    fillInternal(net.minecraft.world.level.material.Fluid fluid, int amountMb)
     
    int
    fillMb(net.minecraft.world.level.material.Fluid fluid, int amountMb)
     
    net.minecraftforge.common.util.LazyOptional<net.minecraftforge.fluids.capability.IFluidHandler>
     
    int
     
    net.minecraft.world.level.material.Fluid
     
    long
    getDynamicNetworkSpeedMb(long maxSpeedMbPerTick, boolean sending)
    Динамический лимит скорости для MK2-сети (анти-осцилляция).
    int
     
    int
     
    int
     
    int
     
    int
     
    net.minecraft.world.level.material.Fluid
     
    net.minecraft.world.level.material.Fluid
     
    boolean
     
    static boolean
    isFluidTypeExplicitlySet(net.minecraft.world.level.material.Fluid type)
     
    boolean
    isFluidValid(net.minecraft.world.level.material.Fluid fluid)
     
    boolean
    loadTank(int in, int out, net.minecraft.world.item.ItemStack[] slots)
     
    void
     
    void
    readFromNBT(net.minecraft.nbt.CompoundTag nbt, String prefix)
     
    void
    readNBT(net.minecraft.nbt.CompoundTag tag)
     
    void
    renderTank(net.minecraft.client.gui.GuiGraphics guiGraphics, int x, int y, int width, int height)
     
    void
    renderTank(net.minecraft.client.gui.GuiGraphics guiGraphics, int x, int y, int width, int height, int orientation)
     
    void
    renderTankInfo(net.minecraft.client.gui.GuiGraphics guiGraphics, net.minecraft.client.gui.Font font, int mouseX, int mouseY, int x, int y, int width, int height)
     
    void
     
    void
    serialize(net.minecraft.network.FriendlyByteBuf buf)
     
    void
    setFill(int amount)
     
    void
    setFluid(net.minecraft.world.level.material.Fluid fluid, int amountMb)
     
    void
    setTankType(net.minecraft.world.level.material.Fluid type)
     
    boolean
    setType(int in, int out, net.minecraft.world.item.ItemStack[] slots)
    Прямой порт 1.7.10 FluidTank.setType(in, out, slots).
    boolean
    setType(int in, net.minecraft.world.item.ItemStack[] slots)
     
    boolean
    unloadTank(int in, int out, net.minecraft.world.item.ItemStack[] slots)
     
    withPressure(int pressure)
     
    net.minecraft.nbt.CompoundTag
    writeNBT(net.minecraft.nbt.CompoundTag tag)
     
    void
    writeToNBT(net.minecraft.nbt.CompoundTag nbt, String prefix)
     

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • EMPTY_ARRAY

      public static final FluidTank[] EMPTY_ARRAY
    • loadingHandlers

      public static final List<FluidTank.LoadingHandler> loadingHandlers
      1.7.10 public static final List<FluidLoadingHandler> loadingHandlers: открытый список для регистрации сторонних обработчиков.
    • noDualUnload

      public static final Set<net.minecraft.world.item.Item> noDualUnload
      1.7.10 public static final Set<Item> noDualUnload: предметы, которые нельзя выгружать в дуальном режиме.
    • capacity

      protected int capacity
    • pressure

      protected int pressure
    • conformedFluid

      protected net.minecraft.world.level.material.Fluid conformedFluid
    • forgeStorage

      protected final net.minecraftforge.fluids.capability.templates.FluidTank forgeStorage
    • lazyFluidHandler

      protected final net.minecraftforge.common.util.LazyOptional<net.minecraftforge.fluids.capability.IFluidHandler> lazyFluidHandler
  • Constructor Details

    • FluidTank

      public FluidTank(int capacity)
    • FluidTank

      public FluidTank(net.minecraft.world.level.material.Fluid type, int capacity)
  • Method Details

    • onContentsChanged

      public void onContentsChanged()
    • isFluidValid

      public boolean isFluidValid(net.minecraft.world.level.material.Fluid fluid)
    • getStoredFluid

      @NotNull public net.minecraft.world.level.material.Fluid getStoredFluid()
    • getFluidAmountMb

      public int getFluidAmountMb()
    • getCapacityMb

      public int getCapacityMb()
    • getSpaceMb

      public int getSpaceMb()
    • isEmpty

      public boolean isEmpty()
    • getDynamicNetworkSpeedMb

      public long getDynamicNetworkSpeedMb(long maxSpeedMbPerTick, boolean sending)
      Динамический лимит скорости для MK2-сети (анти-осцилляция).

      Идея из оригинала: max transfer зависит от заполненности. Полный бак отдаёт быстрее, пустой — почти не отдаёт; пустой бак принимает быстро, полный — почти не принимает. Это снижает "пинг-понг" между двумя трансиверами.

      Parameters:
      maxSpeedMbPerTick - базовая скорость (верхний предел)
      sending - true = отдача (providerSpeed), false = приём (receiverSpeed)
    • getConfiguredFluid

      @NotNull public net.minecraft.world.level.material.Fluid getConfiguredFluid()
    • fillMb

      public int fillMb(net.minecraft.world.level.material.Fluid fluid, int amountMb)
    • drainMb

      public int drainMb(int amountMb)
    • fillInternal

      public int fillInternal(net.minecraft.world.level.material.Fluid fluid, int amountMb)
    • drainInternal

      public int drainInternal(int amountMb)
    • setFluid

      public void setFluid(net.minecraft.world.level.material.Fluid fluid, int amountMb)
    • getCapability

      public net.minecraftforge.common.util.LazyOptional<net.minecraftforge.fluids.capability.IFluidHandler> getCapability()
    • assignTypeAndZeroFluid

      public void assignTypeAndZeroFluid(net.minecraft.world.level.material.Fluid newType)
    • withPressure

      public FluidTank withPressure(int pressure)
    • conform

      public FluidTank conform(net.minecraft.world.level.material.Fluid type)
    • conform

      public FluidTank conform(net.minecraft.world.level.material.Fluid type, int pressure)
    • setTankType

      public void setTankType(net.minecraft.world.level.material.Fluid type)
    • resetTank

      public void resetTank()
    • getTankType

      public net.minecraft.world.level.material.Fluid getTankType()
    • getFill

      public int getFill()
    • getMaxFill

      public int getMaxFill()
    • getPressure

      public int getPressure()
    • setFill

      public void setFill(int amount)
    • fill

      public void fill(int amount)
    • changeTankSize

      public int changeTankSize(int size)
    • loadTank

      public boolean loadTank(int in, int out, net.minecraft.world.item.ItemStack[] slots)
    • unloadTank

      public boolean unloadTank(int in, int out, net.minecraft.world.item.ItemStack[] slots)
    • setType

      public boolean setType(int in, int out, net.minecraft.world.item.ItemStack[] slots)
      Прямой порт 1.7.10 FluidTank.setType(in, out, slots).

      Семантика:

      • slots[in] обязателен и должен быть FluidIdentifierItem;
      • если новый тип совпадает с текущим — возвращается false без изменений;
      • если in == out: тип меняется, fluid обнуляется;
      • если in != out: дополнительно требуется, чтобы slots[out] был пустым, иначе возвращается false без изменений; стэк копируется в out, in зануляется.
    • setType

      public boolean setType(int in, net.minecraft.world.item.ItemStack[] slots)
    • writeToNBT

      public void writeToNBT(net.minecraft.nbt.CompoundTag nbt, String prefix)
    • readFromNBT

      public void readFromNBT(net.minecraft.nbt.CompoundTag nbt, String prefix)
    • writeNBT

      public net.minecraft.nbt.CompoundTag writeNBT(net.minecraft.nbt.CompoundTag tag)
    • readNBT

      public void readNBT(net.minecraft.nbt.CompoundTag tag)
    • serialize

      public void serialize(net.minecraft.network.FriendlyByteBuf buf)
    • deserialize

      public void deserialize(net.minecraft.network.FriendlyByteBuf buf)
    • clone

      public FluidTank clone()
      Overrides:
      clone in class Object
    • isFluidTypeExplicitlySet

      public static boolean isFluidTypeExplicitlySet(net.minecraft.world.level.material.Fluid type)
    • renderTank

      public void renderTank(net.minecraft.client.gui.GuiGraphics guiGraphics, int x, int y, int width, int height)
    • renderTank

      public void renderTank(net.minecraft.client.gui.GuiGraphics guiGraphics, int x, int y, int width, int height, int orientation)
    • renderTankInfo

      public void renderTankInfo(net.minecraft.client.gui.GuiGraphics guiGraphics, net.minecraft.client.gui.Font font, int mouseX, int mouseY, int x, int y, int width, int height)