Class FluidType

java.lang.Object
com.hbm_m.inventory.fluid.FluidType

public class FluidType extends Object
Порт 1.7.10 com.hbm.inventory.fluid.FluidType.

Хранит per-fluid метаданные: температуру и набор FluidTrait. Имя/тинт-цвет вычисляются из Fluid и ModFluids.

Статическая часть класса заменяет роль 1.7.10 Fluids — мапа FluidFluidType.

Соответствие методов с оригиналом 1.7.10:

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    int
    NFPA diamond: flammability (0–4, 0 = no rating / W).
    int
    NFPA diamond: health (poison).
    int
    NFPA diamond: reactivity.
    static final int
    Same numerical value as 1.7.10 FluidType.ROOM_TEMPERATURE (20°C).
    NFPA diamond: special symbol quadrant.
    int
    В 1.7.10 поле public int temperature.
    В 1.7.10 поле public HashMap<Class<? extends FluidTrait>, FluidTrait> traits.
  • Constructor Summary

    Constructors
    Constructor
    Description
    FluidType(net.minecraft.world.level.material.Fluid fluid)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addInfo(boolean shiftDown, List<net.minecraft.network.chat.Component> info)
    Прямой порт 1.7.10 FluidType.addInfo(List<String> info).
    static void
    addTrait(net.minecraft.world.level.material.Fluid fluid, FluidTrait trait)
     
     
    static FluidType
    forFluid(net.minecraft.world.level.material.Fluid fluid)
    Возвращает FluidType для жидкости (создаёт пустой при первом обращении).
    int
    1.7.10 getColor() — цвет, использовавшийся для рендера труб.
    1.7.10 getConditionalName(): для серверного кода без I18n.
    getDict(int quantity)
    1.7.10 getDict(int): префикс из GeneralConfig.enableFluidContainerCompat ? "container" : "ntmcontainer" + объём + имя без _.
    net.minecraft.world.level.material.Fluid
     
    net.minecraft.network.chat.Component
    1.7.10 getLocalizedName(): I18nUtil.resolveKey(unlocalized).
    Возвращает HBM-имя жидкости (без суффикса _source). 1.7.10 getName()stringId.
    int
     
    static int
    getTemperatureCelsius(net.minecraft.world.level.material.Fluid fluid)
    Комнатная температура (20°C), если для жидкости ещё не задавали температуру.
    int
    1.7.10 getTint() — GUI-тинт.
    <T extends FluidTrait>
    T
    getTrait(Class<? extends T> clazz)
     
    static <T extends FluidTrait>
    T
    getTrait(net.minecraft.world.level.material.Fluid fluid, Class<T> traitClass)
     
    1.7.10 getUnlocalizedName() = "hbmfluid." + name.
    boolean
    Whether any hazard diamond segment should be drawn on tanks.
    boolean
     
    boolean
     
    boolean
    hasTrait(Class<? extends FluidTrait> clazz)
     
    static boolean
    hasTrait(net.minecraft.world.level.material.Fluid fluid, Class<? extends FluidTrait> traitClass)
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    void
    onFluidRelease(net.minecraft.world.level.block.entity.BlockEntity be, FluidTank tank, int overflowAmount)
    1.7.10 onFluidRelease(TileEntity, FluidTank, int): делегирует в координатную форму, как в оригинале.
    void
    onFluidRelease(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, FluidTank tank, int overflowAmount)
    1.7.10 onFluidRelease(World, x, y, z, FluidTank, int) — пустая реализация по умолчанию.
    void
    onTankBroken(net.minecraft.world.level.block.entity.BlockEntity be, FluidTank tank)
    1.7.10 onTankBroken(TileEntity, FluidTank): вызывается при разрушении хранилища.
    void
    onTankUpdate(net.minecraft.world.level.block.entity.BlockEntity be, FluidTank tank)
    1.7.10 onTankUpdate(TileEntity, FluidTank): вызывается каждый тик из update-метода.
    setHazardDiamond(int poison, int flammability, int reactivity, FluidHazardSymbol symbol)
     
    static void
    setHazardDiamond(net.minecraft.world.level.material.Fluid fluid, int poison, int flammability, int reactivity, FluidHazardSymbol symbol)
    Sets NFPA hazard diamond ratings (1.7.10 FluidType ctor).
    setTemp(int temperatureCelsius)
     
    static void
    setTemperatureCelsius(net.minecraft.world.level.material.Fluid fluid, int tempC)
     

    Methods inherited from class java.lang.Object

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

    • ROOM_TEMPERATURE

      public static final int ROOM_TEMPERATURE
      Same numerical value as 1.7.10 FluidType.ROOM_TEMPERATURE (20°C).
      See Also:
    • temperature

      public int temperature
      В 1.7.10 поле public int temperature.
    • poison

      public int poison
      NFPA diamond: health (poison).
    • flammability

      public int flammability
      NFPA diamond: flammability (0–4, 0 = no rating / W).
    • reactivity

      public int reactivity
      NFPA diamond: reactivity.
    • symbol

      public FluidHazardSymbol symbol
      NFPA diamond: special symbol quadrant.
    • traits

      public final HashMap<Class<? extends FluidTrait>,FluidTrait> traits
      В 1.7.10 поле public HashMap<Class<? extends FluidTrait>, FluidTrait> traits.
  • Constructor Details

    • FluidType

      public FluidType(net.minecraft.world.level.material.Fluid fluid)
  • Method Details

    • forFluid

      public static FluidType forFluid(net.minecraft.world.level.material.Fluid fluid)
      Возвращает FluidType для жидкости (создаёт пустой при первом обращении).
    • setTemperatureCelsius

      public static void setTemperatureCelsius(net.minecraft.world.level.material.Fluid fluid, int tempC)
    • getTemperatureCelsius

      public static int getTemperatureCelsius(net.minecraft.world.level.material.Fluid fluid)
      Комнатная температура (20°C), если для жидкости ещё не задавали температуру.
    • addTrait

      public static void addTrait(net.minecraft.world.level.material.Fluid fluid, FluidTrait trait)
    • setHazardDiamond

      public static void setHazardDiamond(net.minecraft.world.level.material.Fluid fluid, int poison, int flammability, int reactivity, FluidHazardSymbol symbol)
      Sets NFPA hazard diamond ratings (1.7.10 FluidType ctor).
    • setHazardDiamond

      public FluidType setHazardDiamond(int poison, int flammability, int reactivity, FluidHazardSymbol symbol)
    • hasHazardDiamond

      public boolean hasHazardDiamond()
      Whether any hazard diamond segment should be drawn on tanks.
    • getTrait

      public static <T extends FluidTrait> T getTrait(net.minecraft.world.level.material.Fluid fluid, Class<T> traitClass)
    • hasTrait

      public static boolean hasTrait(net.minecraft.world.level.material.Fluid fluid, Class<? extends FluidTrait> traitClass)
    • getFluid

      public net.minecraft.world.level.material.Fluid getFluid()
    • getTemperature

      public int getTemperature()
    • setTemp

      public FluidType setTemp(int temperatureCelsius)
    • addTraits

      public FluidType addTraits(FluidTrait... toAdd)
    • hasTrait

      public boolean hasTrait(Class<? extends FluidTrait> clazz)
    • getTrait

      public <T extends FluidTrait> T getTrait(Class<? extends T> clazz)
    • getName

      public String getName()
      Возвращает HBM-имя жидкости (без суффикса _source). 1.7.10 getName()stringId.

      Здесь же реализована логика, ранее жившая в HbmFluidRegistry.getFluidName.

    • getColor

      public int getColor()
      1.7.10 getColor() — цвет, использовавшийся для рендера труб. В 1.20.1 это тот же tint, что и getTint().
    • getTint

      public int getTint()
      1.7.10 getTint() — GUI-тинт. В 1.20.1 хранится в ModFluids.TINT_COLORS.
    • getUnlocalizedName

      public String getUnlocalizedName()
      1.7.10 getUnlocalizedName() = "hbmfluid." + name. Возвращаем тот же префикс для парности; для реальной локализации см. getLocalizedName().
    • getLocalizedName

      public net.minecraft.network.chat.Component getLocalizedName()
      1.7.10 getLocalizedName(): I18nUtil.resolveKey(unlocalized). В 1.20.1 используем translation-key из Fluid-реестра через Architectury, плюс специальные имена для Fluids.EMPTY и ModFluids.NONE.
    • getConditionalName

      public String getConditionalName()
      1.7.10 getConditionalName(): для серверного кода без I18n.
    • getDict

      public String getDict(int quantity)
      1.7.10 getDict(int): префикс из GeneralConfig.enableFluidContainerCompat ? "container" : "ntmcontainer" + объём + имя без _.
    • isHot

      public boolean isHot()
    • isCorrosive

      public boolean isCorrosive()
    • isAntimatter

      public boolean isAntimatter()
    • hasNoContainer

      public boolean hasNoContainer()
    • hasNoID

      public boolean hasNoID()
    • needsLeadContainer

      public boolean needsLeadContainer()
    • isDispersable

      public boolean isDispersable()
    • onTankBroken

      public void onTankBroken(net.minecraft.world.level.block.entity.BlockEntity be, FluidTank tank)
      1.7.10 onTankBroken(TileEntity, FluidTank): вызывается при разрушении хранилища.
    • onTankUpdate

      public void onTankUpdate(net.minecraft.world.level.block.entity.BlockEntity be, FluidTank tank)
      1.7.10 onTankUpdate(TileEntity, FluidTank): вызывается каждый тик из update-метода.
    • onFluidRelease

      public void onFluidRelease(net.minecraft.world.level.block.entity.BlockEntity be, FluidTank tank, int overflowAmount)
      1.7.10 onFluidRelease(TileEntity, FluidTank, int): делегирует в координатную форму, как в оригинале.
    • onFluidRelease

      public void onFluidRelease(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, FluidTank tank, int overflowAmount)
      1.7.10 onFluidRelease(World, x, y, z, FluidTank, int) — пустая реализация по умолчанию.
    • addInfo

      public void addInfo(boolean shiftDown, List<net.minecraft.network.chat.Component> info)
      Прямой порт 1.7.10 FluidType.addInfo(List<String> info).

      Порядок строк (1:1 с оригиналом):

      1. температурная строка, если temperature != ROOM_TEMPERATURE (синяя если <0, красная если >0)
      2. для каждого clazz из FluidTrait.traitList: trait.addInfo(info), и если зажат шифт — также trait.addInfoHidden(info)
      3. если хотя бы у одного трейта есть скрытые строки и шифт не зажат — подсказка «hold LSHIFT for more info»