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 + 铁锭
相关条目
- Conduit Bundle - 导管核心
- Fluid Conduit - 流体导管
- Power Conduit - 动力导管
- Redstone Conduit - 红石导管
第三方集成
| 集成 Mod | 集成类型 | 功能 |
|---|---|---|
| ComputerCraft | 捆绑红石 | 捆绑红石信号传输 |
| OpenComputers | OC 网络 | OpenComputers 网络连接 |
| Applied Energistics 2 | ME 网络 | ME 存储网络连接 |
| Mekanism | 气体管道 | 气体传输管道 |
| Immibis Microblocks | 微块覆盖 | 微块系统支持 |
| MineFactoryReloaded | RedNet 集成 | RedNet 电缆连接 |
| Waila | 工具提示 | Waila HUD 信息显示 |
| Thaumcraft | 要素注册 | 物品要素标签 |