跳到正文
烈焰甘蔗Wiki

Fluid Conduit

基本信息

属性 值
注册名 enderio:itemLiquidConduit
最大堆叠 64
附魔适用 否
耐久度 无

功能

Fluid Conduit 是 Ender IO 流体导管系统的导管物品。放置后形成流体传输通道,用于在容器之间转移液体。

变种与传输速率

基础流体导管(Basic)

参数 值
提取速率 50 mB/tick
最大 IO 速率 200 mB/tick

配方:binder + 玻璃

高级流体导管(Advanced)

参数 值
提取速率 100 mB/tick
最大 IO 速率 400 mB/tick

配方:binder + Fused Quartz(需 Config.useHardRecipes=true)

末影流体导管(Ender Fluid Conduit)

可在相距 40 格以内的两个流体导管网络间传送液体,无需直接连接。

参数 值
提取速率 200 mB/tick
最大 IO 速率 800 mB/tick

配方:binder + Fused Quartz + Phased Gold

结晶末影流体导管(Crystalline Ender)

参数 值
提取速率 1,000 mB/tick
最大 IO 速率 4,000 mB/tick

配方:binder + Fused Quartz + Crystalline Alloy

结晶粉色史莱姆末影流体导管(Crystalline Pink Slime Ender)

参数 值
提取速率 2,000 mB/tick
最大 IO 速率 8,000 mB/tick

配方:binder + Fused Quartz + Crystalline Pink Slime

旋律末影流体导管(Melodic Ender)

参数 值
提取速率 10,000 mB/tick
最大 IO 速率 40,000 mB/tick

配方:binder + Fused Quartz + Melodic Alloy

恒星末影流体导管(Stellar Ender)

参数 值
提取速率 20,000 mB/tick
最大 IO 速率 80,000 mB/tick

配方:binder + Fused Quartz + Stellar Alloy

传输速率对比表

导管类型 提取速率 (mB/t) 最大 IO (mB/t) 配方复杂度
Basic 50 200 低
Advanced 100 400 中
Ender 200 800 中
Crystalline Ender 1,000 4,000 高
Crystalline Pink Slime Ender 2,000 8,000 高
Melodic Ender 10,000 40,000 很高
Stellar Ender 20,000 80,000 最高

流体类型锁定

末影流体导管支持流体类型锁定功能:

  • 首次输入流体后锁定类型
  • 锁定后只接受同类型流体
  • 可用工具右键解锁后重新选择流体类型

连接模式

每个面独立配置。GUI 中的「提取」和「加入」是两个独立开关,组合后映射到 ConnectionMode 枚举:

GUI 显示 枚举值 acceptsInput() acceptsOutput() 实际行为
提取 INPUT ✅ ❌ 只从这一面抽出流体
加入 OUTPUT ❌ ✅ 只向这一面灌入流体
提取+加入(输入图/输出) IN_OUT ✅ ✅ 双向
关闭 DISABLED ❌ ❌ 完全断开
默认(未设置) NOT_SET — — 继承导管类型默认值

[!WARNING] 命名容易误导:INPUT 指的是「从这一侧取」,OUTPUT 指的是「往这一侧送」。想往机器里灌流体,必须设为 加入(OUTPUT),而不是「输入」。

默认模式

流体导管的默认连接模式是 提取(INPUT)(AbstractLiquidConduit.getDefaultConnectionMode())。 这意味着任何没有手动改过的面都只会抽取、永远不外送。新建一条导管去接机器时,必须手动把该面切成「加入」。

双向模式的陷阱

源码里的推送判定是:

// AbstractLiquidConduit.canInputToDir()
return getConnectionMode(dir).acceptsOutput() && !autoExtractForDir(dir);

而 autoExtractForDir() 在红石控制模式为 始终运行(IGNORE) 时会无条件返回 true。

因此:某个面同时满足「双向」+「始终运行」时,!autoExtractForDir() 恒为 false → 那个面永远只能抽、永远不能送,且没有任何提示。

排查「双向面只出不进」时,第一件事就是检查该面的红石控制模式。

频道(输入色 / 输出色)

[!NOTE] GUI 里的这个按钮 tooltip 叫 「频道」(enderio.gui.conduit.item.channel)。它不是把网络隔离成两条独立管道,而是逐面的一对颜色标记,用于决定「谁可以往谁送」。

仅 Ender 系列流体导管的 GUI 会出现频道按钮(LiquidSettings.updateGuiVisibility() 中 if (!isEnder) return;)。

配对规则

推送时,源面和目标面必须颜色相同,否则该目标被静默跳过(无日志、无报错):

// EnderLiquidConduitNetwork.fillFrom()
target.con.getOutputColor(target.conDir)
    .equals(tank.con.getInputColor(tank.conDir))

也就是说,要让流体从 A 流到 B,需要同时满足:

  • A 侧贴着源的面 → 输入色(提取频道)
  • B 侧贴着目标的面 → 输出色(加入频道)
  • 两者颜色完全相同

两端的默认值都是 DyeColor.GREEN(AbstractEnderLiquidConduit.getInputColor/getOutputColor)。

最快的修复方式:把两端的输入色和输出色全部改回「默认」。 默认绿 ↔ 默认绿天然匹配,不存在设反的可能。

抽取不检查颜色,输送才检查

这是「能抽出来却灌不进去」的经典成因,因为两条路径的闸门不同:

路径 源码方法 是否检查频道颜色
抽取 EnderLiquidConduitNetwork.extractFrom() ❌ 不检查
输送 EnderLiquidConduitNetwork.fillFrom() ✅ 检查

所以颜色配错时,源机器照常被抽空、悬浮提示照常显示流体、网络里照常有货——唯独灌不进去。

颜色 ≠ 红石信号颜色

界面上有两个颜色设置,极易点错行:

GUI tooltip 含义 作用范围
信号颜色(gui.conduit.redstone.signalColor) 红石控制所使用的信号颜色 红石控制
频道(gui.conduit.item.channel) 输入色/输出色配对 流体路由

两者互相独立,名字却都像「颜色」。

红石控制

红石控制只影响抽取(autoExtractForDir),不影响输送方向。

GUI 枚举值 行为
始终运行 IGNORE 无条件抽取(忽略红石)
有信号时 ON 有信号才抽取(默认)
无信号时 OFF 无信号才抽取
从不 NEVER 永不抽取

[!IMPORTANT] 默认模式是「有信号时」(ON),不是「始终运行」。新建导管后若发现抽不出东西,先看这一项。

颜色为红色时,还会额外参考该面的外部红石信号强度。

与 GregTech 5 的交互

GT5 在 1.7.10 中不注册 Forge 流体能力,只依赖 instanceof IFluidHandler;而 EnderIO 也正是用这个方式查找邻居,两者能对上(IGregTechTileEntity extends ... IFluidHandler)。

EnderIO 对 GT5 的容量门槛

EnderIO 对 GT 方块额外加了一道判断:

// AbstractLiquidConduit.canConnectToExternal()
if (EnderIO.hasGT5 && h instanceof IGregTechTileEntity) {
    IMetaTileEntity mte = ((IGregTechTileEntity) h).getMetaTileEntity();
    return mte != null && mte.getCapacity() > 0;   // 容量为 0 → 根本不会绑定
}

getCapacity() 返回 0 时,该面不会进入 externalConnections,也就不会建立推送目标——连尝试都不会发生。

GT5 输入总线 vs 输入仓

中文本地化里这两个名字极易混淆(assets/gregtech/lang/zh_CN.lang):

方块 中文名 能否装流体
MTEHatchInputBus 输入总线 ❌ 纯物品,16 格
MTEHatchInput 输入仓 ✅ 流体罐

输入总线的流体能力是硬关闭的:canTankBeFilled() 恒为 false,getCapacity() 恒为 0,fill() 直接返回 0。

把流体导管接到输入总线上永远不会成功。 游戏内判别:右键开出来是 16 格物品网格 = 输入总线;是流体罐界面 = 输入仓。

GT5 侧的静默拒绝

即使目标确实是流体仓,GT5 仍有一层侧面闸门(BaseMetaTileEntity.fill(ForgeDirection, ...)):

  • mInputDisabled —— 用螺丝刀禁用该面的输入后,导管推不进去
  • getCoverAtSide(side).letsFluidIn() —— 该面若盖了不导流体的面板,同样推不进去

悬浮提示的局限

Waila/悬浮提示读取的是导管自身罐子里的流体(WailaCompat 中 atc.getTank().getFluid()),从不查询邻居、也从不反映 fill() 的结果。

看到流体 ≠ 推送成功。 排查时不能拿悬浮提示当作证据。

常见故障排查

症状 优先检查
完全不抽取 该面红石控制是否为「始终运行」(默认为「有信号时」)
抽得出但灌不进 频道配对:源面「输入色」与目标面「输出色」是否相同
双向面只出不进 该面是否为「双向」+「始终运行」组合(永久只抽不送)
接到机器完全无反应 目标可能是 GT 输入总线(getCapacity()==0,不绑定)
目标面没有连接口渲染 说明 canConnectToExternal 返回 false,EnderIO 未绑定该面
单次推送没反应 检查目标面过滤器是否放行该流体
突然停止工作 螺丝刀检查该面输入是否被禁用、面板是否阻挡流体

与其他系统结合

Conduit 接口(Conduit Bundle)

所有流体导管安装在 Conduit Bundle 中,可与其他导管共享方块实体。

典型使用场景

场景 推荐导管类型
小型农场/酿造 Basic 或 Advanced
大型工厂 Ender Fluid Conduit
超高速生产 Stellar Ender

相关条目

第三方集成

集成 Mod 集成类型 功能
ComputerCraft 捆绑红石 捆绑红石信号传输
OpenComputers OC 网络 OpenComputers 网络连接
Applied Energistics 2 ME 网络 ME 存储网络连接
Mekanism 气体管道 气体传输管道
Immibis Microblocks 微块覆盖 微块系统支持
MineFactoryReloaded RedNet 集成 RedNet 电缆连接
Waila 工具提示 Waila HUD 信息显示
Thaumcraft 要素注册 物品要素标签
浏览全部模组