Class FluidDuctBlockEntity
- All Implemented Interfaces:
IFluidConnectorMK2,IFluidPipeMK2,net.minecraftforge.common.capabilities.ICapabilityProvider,net.minecraftforge.common.capabilities.ICapabilityProviderImpl<net.minecraft.world.level.block.entity.BlockEntity>,net.minecraftforge.common.capabilities.ICapabilitySerializable<net.minecraft.nbt.CompoundTag>,net.minecraftforge.common.extensions.IForgeBlockEntity,net.minecraftforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>
Визуал оверлея (neo / colored / silver): в Forge OBJ MTL задаётся forge_TintIndex 1 для слоя
«skin»; на Fabric com.hbm_m.client.model.loading.MtlData читает это поле, JSON mtl_override
подставляет MTL для bake (base / overlay), а блоки труб зарегистрированы в BlockRenderLayerMap
как cutout в ClientSetup, чтобы оверлей с альфой и tint из
ColorProviderRegistry.BLOCK отображался как на Forge (multipart solid + cutout).
Логика передачи жидкостей:
- Узел (FluidNode) создаётся при загрузке блока/смене типа и разрушается при выгрузке.
- UniNodespace обновляется раз в тик (через MainRegistry.onServerTick) и строит сети.
- Каждый тик duct сканирует соседей: для Forge-машин создаёт ForgeFluidHandlerAdapter
и регистрирует их как providers/receivers в сети трубы.
- Фактический перенос жидкостей выполняется FluidNet.update() (в UniNodespace.updateNodespace()).
-
Nested Class Summary
Nested classes/interfaces inherited from class net.minecraftforge.common.capabilities.CapabilityProvider
net.minecraftforge.common.capabilities.CapabilityProvider.AsField<B extends net.minecraftforge.common.capabilities.ICapabilityProviderImpl<B>> -
Field Summary
Fields inherited from class net.minecraft.world.level.block.entity.BlockEntity
level, remove, worldPositionFields inherited from interface net.minecraftforge.common.extensions.IForgeBlockEntity
INFINITE_EXTENT_AABB -
Constructor Summary
ConstructorsConstructorDescriptionFluidDuctBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) -
Method Summary
Modifier and TypeMethodDescriptionbooleancanConnect(net.minecraft.world.level.material.Fluid fluid, net.minecraft.core.Direction fromDir) Может ли этот коннектор принимать/отдавать жидкость указанного типа с указанной стороны.longВозвращает текущий fluidTracker для оверлея.net.minecraft.world.level.material.FluidintРазмер активной сети (количество узлов).net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener>net.minecraft.nbt.CompoundTagvoidload(net.minecraft.nbt.CompoundTag tag) voidvoidonLoad()protected voidsaveAdditional(net.minecraft.nbt.CompoundTag tag) voidsetFluidType(net.minecraft.world.level.material.Fluid fluid) voidsetFluidTypeSilent(net.minecraft.world.level.material.Fluid fluid) Устанавливает тип без немедленной синхронизации (для batch-покраски).voidvoidstatic voidtick(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, FluidDuctBlockEntity entity) Methods inherited from class net.minecraft.world.level.block.entity.BlockEntity
addEntityType, clearRemoved, fillCrashReportCategory, getBlockPos, getBlockState, getLevel, getPersistentData, getPosFromTag, getType, hasLevel, isRemoved, loadStatic, onlyOpCanSetNbt, saveToItem, saveWithFullMetadata, saveWithId, saveWithoutMetadata, setBlockState, setChanged, setChanged, setLevel, triggerEventMethods inherited from class net.minecraftforge.common.capabilities.CapabilityProvider
areCapsCompatible, areCapsCompatible, deserializeCaps, gatherCapabilities, gatherCapabilities, gatherCapabilities, getCapabilities, getCapability, invalidateCaps, reviveCaps, serializeCapsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.minecraftforge.common.capabilities.ICapabilityProvider
getCapability, getCapabilityMethods inherited from interface com.hbm_m.api.fluids.IFluidPipeMK2
createNodeMethods inherited from interface net.minecraftforge.common.extensions.IForgeBlockEntity
deserializeNBT, getModelData, getRenderBoundingBox, handleUpdateTag, hasCustomOutlineRendering, onDataPacket, requestModelDataUpdate, serializeNBT
-
Constructor Details
-
FluidDuctBlockEntity
public FluidDuctBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
-
-
Method Details
-
getFluidType
public net.minecraft.world.level.material.Fluid getFluidType()- Specified by:
getFluidTypein interfaceIFluidPipeMK2
-
canConnect
public boolean canConnect(net.minecraft.world.level.material.Fluid fluid, net.minecraft.core.Direction fromDir) Description copied from interface:IFluidConnectorMK2Может ли этот коннектор принимать/отдавать жидкость указанного типа с указанной стороны.- Specified by:
canConnectin interfaceIFluidConnectorMK2- Parameters:
fluid- тип жидкостиfromDir- направление ОТ ЭТОГО узла к соседу (сторона, через которую идёт соединение)
-
setFluidType
public void setFluidType(net.minecraft.world.level.material.Fluid fluid) -
setFluidTypeSilent
public void setFluidTypeSilent(net.minecraft.world.level.material.Fluid fluid) Устанавливает тип без немедленной синхронизации (для batch-покраски). -
syncFluidToClients
public void syncFluidToClients() -
onLoad
public void onLoad()- Specified by:
onLoadin interfacenet.minecraftforge.common.extensions.IForgeBlockEntity
-
setRemoved
public void setRemoved()- Overrides:
setRemovedin classnet.minecraft.world.level.block.entity.BlockEntity
-
onChunkUnloaded
public void onChunkUnloaded()- Specified by:
onChunkUnloadedin interfacenet.minecraftforge.common.extensions.IForgeBlockEntity- Overrides:
onChunkUnloadedin classnet.minecraft.world.level.block.entity.BlockEntity
-
tick
public static void tick(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, FluidDuctBlockEntity entity) -
getFluidTracker
public long getFluidTracker()Возвращает текущий fluidTracker для оверлея. -
getNetworkSize
public int getNetworkSize()Размер активной сети (количество узлов). -
saveAdditional
protected void saveAdditional(@NotNull net.minecraft.nbt.CompoundTag tag) - Overrides:
saveAdditionalin classnet.minecraft.world.level.block.entity.BlockEntity
-
load
public void load(@NotNull net.minecraft.nbt.CompoundTag tag) - Overrides:
loadin classnet.minecraft.world.level.block.entity.BlockEntity
-
getUpdateTag
public net.minecraft.nbt.CompoundTag getUpdateTag()- Overrides:
getUpdateTagin classnet.minecraft.world.level.block.entity.BlockEntity
-
getUpdatePacket
public net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener> getUpdatePacket()- Overrides:
getUpdatePacketin classnet.minecraft.world.level.block.entity.BlockEntity
-