跳到正文
烈焰甘蔗Wiki

Item Conduit

基本信息

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

功能

Item Conduit 是 Ender IO 物品导管系统的导管物品。放置后形成物品传输通道,支持在容器之间转移物品并支持强大的过滤功能。

传输速率

物品导管默认每 tick 可提取 4 个物品,通过升级可提升至:

  • Speed Upgrade: 每 tick 可提取 4 + 堆叠数 × 4 个物品(最多 15 + 64×4 = 271 个/tick)
  • Speed Downgrade: 每 tick 仅提取 1 个物品

传输逻辑:

  • 每 tick 最多检查 64 个物品槽位
  • 每提取物品后有 tick 冷却时间:10 / 最大提取数 tick
  • 提取受过滤器限制(输入/输出过滤)

过滤系统

物品导管支持 6 种过滤器类型,通过导管 GUI 配置:

过滤器类型

过滤器 功能 特点
Basic Item Filter 精确匹配物品 白名单模式
Big Item Filter 大量物品精确匹配 9 槽位
Existing Item Filter 匹配库存已有物品 动态
Fuzzy Mode Filter 忽略耐久度/矿辞 模糊匹配
Limited Item Filter 限制数量 + 匹配物品 可设置通过数量上限
Mod Item Filter 按 Mod 来源过滤 整 mod 过滤
Power Item Filter 过滤含能量物品 充电物品

过滤器配置

  • Input Filter: 控制从外部库存提取哪些物品
  • Output Filter: 控制发送到目标库存哪些物品
  • Sticky 模式: 过滤器设为 sticky 时,同一批次物品优先发送到同一目标

优先级与路由

输出优先级

每个方向可设置输出优先级(0-9,默认为 0):

  • 数字越高,优先级越高
  • 物品优先发送到高优先级目标
  • 优先级相同时按距离排序(Config.itemConduitUsePhyscialDistance 控制距离计算方式)

Round-Robin 轮询模式

启用后,物品在所有匹配目标之间轮询分配,而不是全部发送到最高优先级。

Self-Feed 自循环

启用后,物品可循环回到同一导管的输出端,用于构建环路或优先自给。

连接模式

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

GUI 显示 枚举值 含义 可抽取 可送入
提取 INPUT 只从这一面抽出 ✅ ❌
加入 OUTPUT 只往这一面送入 ❌ ✅
提取+加入(输入图/输出) IN_OUT 双向 ✅ ✅
关闭 DISABLED 完全断开 ❌ ❌

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

物品导管的默认模式同样是「提取」(ItemConduit.getDefaultConnectionMode() 返回 INPUT)。任何没手动改过的面都只会抽取、不会外送。

物品导管与流体导管的判定略有差别:物品导管的双向面不会被红石控制影响(它没有 !autoExtractForDir() 这一层),因此不存在流体导管那种「双向+始终运行=永久只抽不送」的陷阱。

Inventory Panel 属于特殊节点,永远不能作为送入目标(canInsert() 中对 inventoryPanel 恒返回 false)。

频道(输入色 / 输出色)

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

与流体导管的末影系列一样,物品导管的每个面都有独立的「输入频道」和「输出频道」两个颜色按钮。

配对规则

物品导管在构建发送目标列表时,颜色不匹配的目标会被直接排除在列表之外——不报错、不提示、什么都不发生:

// NetworkedInventory.updateInsertOrder()
if ((con.isSelfFeedEnabled(conDir) || (other != this)) && other.canInsert()
        && con.getInputColor(conDir) == other.con.getOutputColor(other.conDir)) {
    sendPriority.add(new Target(other, distanceTo(other), other.isSticky(), other.getPriority()));
}

要送到目标,需要同时满足:

  • 源面 → 输入频道颜色
  • 目标面 → 输出频道颜色
  • 两者完全相同

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

最省事的做法:全部改回「默认」。 默认绿 ↔ 默认绿天然匹配。

与「信号颜色」区分

GUI tooltip 含义
信号颜色(gui.conduit.redstone.signalColor) 红石控制所用的信号颜色
频道(gui.conduit.item.channel) 输入色/输出色配对,影响路由

两者独立,但名字都像「颜色」,容易点错行。

红石控制

红石控制只影响抽取:

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

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

颜色为红色时,还会额外参考该面的外部红石信号强度;信号强度 选项可让导管对外输出强红石信号。

升级物品

物品导管支持以下升级(安装在导管 GUI):

升级物品 功能
Extract Speed Upgrade 加速提取(叠加 stack size)
Extract Speed Downgrade 减速提取(固定 1/tick)
Function Upgrade: Inventory Panel 连接 Inventory Panel 升级

与其他系统结合

Conduit 接口(Conduit Bundle)

物品导管安装在 Conduit Bundle 中,可与其他导管共享方块实体,节省空间。

过滤器升级

  • 可将配置好的过滤器复制到升级物品
  • 可清除过滤器配置
  • 过滤器支持 NBT 数据保存

第三方集成

集成 Mod 集成类型 功能
Applied Energistics 2 ME Conduit ME 存储网络连接(需单独 ME Conduit)
Inventory Panel 功能升级 连接 Inventory Panel 进行大规模存储管理

与 GregTech 5 的交互

物品导管的绑定判定与流体导管完全不同——没有 getCapacity() 门槛,但换成了侧面槽位判定:

// ItemConduit.canConnectToExternal()
IInventory inv = getExternalInventory(direction);
if (inv == null) return false;
else if (inv instanceof IInventoryConnection) {
    return ((IInventoryConnection) inv).canConnectInventory(direction.getOpposite()).canConnect;
} else if (inv instanceof ISidedInventory) {
    int[] slots = ((ISidedInventory) inv).getAccessibleSlotsFromSide(direction.getOpposite().ordinal());
    return slots != null && slots.length > 0;     // 该面必须暴露至少一个槽位
} else {
    return true;
}

推论:

  • 目标方块必须实现 IInventory,否则完全不绑定(EnderIO 直接返回 null)。
  • 目标实现 ISidedInventory 时,该面必须返回非空槽位数组。GT5 机器若在某一侧不暴露任何可访问槽位,导管就不会连那一面。
  • 判定用的是指向目标的反方向(direction.getOpposite()),因此「导管从 N 面贴过去」实际查询的是目标方块的 S 面。朝向算错会导致查不到槽位。

GT5 的机器方块一般都能正常连接,输入总线(MTEHatchInputBus)正是纯物品容器,是物品导管的正确目标;反之,输入仓(MTEHatchInput)是流体容器,不该用物品导管接。

[!TIP] 一条经验法则:物品导管 → 输入总线,流体导管 → 输入仓。 接反了不会报错,只是完全不工作。

常见故障排查

症状 优先检查
完全不抽取 该面红石控制是否为「始终运行」(默认为「有信号时」)
送不进目标机器 频道配对:源面「输入频道」与目标面「输出频道」是否相同
目标面没有连接口渲染 getAccessibleSlotsFromSide 返回空,或该面不是 IInventory
换朝向就不行 槽位判定用的是反方向,确认导管贴的是目标方块正确的面
送了但优先级不对 目标面的输出过滤器与优先级设置
环路物品不回收 源面需要开启 Self-Feed
物品在某目标堆积 该目标未开 round-robin,或频道与其他源不匹配

合成配方

基础配方(Config.useHardRecipes=false):

binder + 铁锭

相关条目

第三方集成

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