Package com.hbm_m.inventory.fluid.tank
Class FluidTank
java.lang.Object
com.hbm_m.inventory.fluid.tank.FluidTank
- All Implemented Interfaces:
Cloneable
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected net.minecraft.world.level.material.Fluidstatic final FluidTank[]protected final net.minecraftforge.fluids.capability.templates.FluidTankprotected final net.minecraftforge.common.util.LazyOptional<net.minecraftforge.fluids.capability.IFluidHandler>static final List<FluidTank.LoadingHandler>1.7.10public static final List<FluidLoadingHandler> loadingHandlers: открытый список для регистрации сторонних обработчиков.static final Set<net.minecraft.world.item.Item>1.7.10public static final Set<Item> noDualUnload: предметы, которые нельзя выгружать в дуальном режиме.protected int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidassignTypeAndZeroFluid(net.minecraft.world.level.material.Fluid newType) intchangeTankSize(int size) clone()conform(net.minecraft.world.level.material.Fluid type) conform(net.minecraft.world.level.material.Fluid type, int pressure) voiddeserialize(net.minecraft.network.FriendlyByteBuf buf) intdrainInternal(int amountMb) intdrainMb(int amountMb) voidfill(int amount) intfillInternal(net.minecraft.world.level.material.Fluid fluid, int amountMb) intfillMb(net.minecraft.world.level.material.Fluid fluid, int amountMb) net.minecraftforge.common.util.LazyOptional<net.minecraftforge.fluids.capability.IFluidHandler>intnet.minecraft.world.level.material.FluidlonggetDynamicNetworkSpeedMb(long maxSpeedMbPerTick, boolean sending) Динамический лимит скорости для MK2-сети (анти-осцилляция).intgetFill()intintintintnet.minecraft.world.level.material.Fluidnet.minecraft.world.level.material.FluidbooleanisEmpty()static booleanisFluidTypeExplicitlySet(net.minecraft.world.level.material.Fluid type) booleanisFluidValid(net.minecraft.world.level.material.Fluid fluid) booleanloadTank(int in, int out, net.minecraft.world.item.ItemStack[] slots) voidvoidreadFromNBT(net.minecraft.nbt.CompoundTag nbt, String prefix) voidreadNBT(net.minecraft.nbt.CompoundTag tag) voidrenderTank(net.minecraft.client.gui.GuiGraphics guiGraphics, int x, int y, int width, int height) voidrenderTank(net.minecraft.client.gui.GuiGraphics guiGraphics, int x, int y, int width, int height, int orientation) voidrenderTankInfo(net.minecraft.client.gui.GuiGraphics guiGraphics, net.minecraft.client.gui.Font font, int mouseX, int mouseY, int x, int y, int width, int height) voidvoidserialize(net.minecraft.network.FriendlyByteBuf buf) voidsetFill(int amount) voidsetFluid(net.minecraft.world.level.material.Fluid fluid, int amountMb) voidsetTankType(net.minecraft.world.level.material.Fluid type) booleansetType(int in, int out, net.minecraft.world.item.ItemStack[] slots) Прямой порт 1.7.10FluidTank.setType(in, out, slots).booleansetType(int in, net.minecraft.world.item.ItemStack[] slots) booleanunloadTank(int in, int out, net.minecraft.world.item.ItemStack[] slots) withPressure(int pressure) net.minecraft.nbt.CompoundTagwriteNBT(net.minecraft.nbt.CompoundTag tag) voidwriteToNBT(net.minecraft.nbt.CompoundTag nbt, String prefix)
-
Field Details
-
EMPTY_ARRAY
-
loadingHandlers
1.7.10public static final List<FluidLoadingHandler> loadingHandlers: открытый список для регистрации сторонних обработчиков. -
noDualUnload
1.7.10public 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
-
conform
-
conform
-
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.10FluidTank.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
-
readFromNBT
-
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
-
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)
-