Essentia Import Bus
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | thaumicenergistics:part.base(meta/damage = AEPartsEnum.EssentiaImportBus.ordinal(),即 0) |
| 部件类 | thaumicenergistics.common.parts.PartEssentiaImportBus(继承 AE2 PartBaseImportBus<AEEssentiaStack>,PartEssentiaImportBus.java:47) |
| 分组 | ME Essentia Import/Export Bus(thaumicenergistics.group.essentia.transport,AEPartsEnum.java:29) |
| 创造标签组名 | 通过 IItemGroup.getUnlocalizedGroupName 归入 Import/Export Bus 组(ItemAEPart.java:108-110) |
| 存储类型 | ESSENTIA_STACK_TYPE(getStackType(),PartEssentiaImportBus.java:131-133) |
| 过滤槽大小 | 9(MAX_FILTER_SIZE = 9,PartEssentiaImportBus.java:139) |
| 显示名 | Essentia Import Bus(en_US.lang:thaumicenergistics.aeparts.essentia.ImportBus.name) |
功能
Essentia Import Bus(要素导入总线)是 ThE 要素物流的入口端:从相邻的 Thaumcraft 要素容器(IAspectContainer,如要素罐、要素管道、机器的要素槽)抽取要素并送入 AE2 网络。它与 Essentia Export Bus 方向相反,两者成对使用构成「容器 ↔ 网络」的桥。
核心机制(PartEssentiaImportBus):
- 继承 AE2 的
PartBaseImportBus<AEEssentiaStack>,因此获得 AE2 导入总线全套行为:红石模式、模糊匹配(FuzzyMode)、升级卡槽 importStuff判定相邻方块必须是IAspectContainer,否则直接返回(PartEssentiaImportBus.java:88-89)- 通过
EssentiaTileContainerHelper.INSTANCE.getAspectInContainer(container)读取容器内要素,并与要导入的AEEssentiaStack的 aspect tag 比对,不符则不导入(:91-92)—— 这是按要素精确过滤,不做模糊匹配 - 先模拟再实际扣除:
extractFromContainer(..., maxDrain, aspect, Actionable.SIMULATE)试探可抽取量,再monitor.injectItems(aes, Actionable.MODULATE, mySrc)注入网络,最后才Actionable.MODULATE真正从容器扣除(:94-116)—— 三段式保证不凭空造要素 - 成功时置
this.worked = true(:114) - 要素过滤:GUI 中最多配置 9 条要素过滤规则(
MAX_FILTER_SIZE = 9) doOreDict恒返回false(:123-126)—— 本总线不支持物品字典getPowerMultiplier()返回1(:126-129)- NBT 键:
redstoneMode、AspectFilter#、upgradeInventory、Owner(:135-139) - 客户端渲染含静态指示灯
renderStaticBusLights(:282、:318)
可用升级卡
在 AEPartsEnum.EssentiaImportBus 构造时注册(AEPartsEnum.java:28-30):
| 升级卡 | 上限 |
|---|---|
Upgrades.CAPACITY |
2 |
Upgrades.REDSTONE |
1 |
Upgrades.SPEED |
4 |
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 基础传输量 | 4 | calculateAmountToSend() 返回 4 + speed×8(PartEssentiaImportBus.java:81-83) |
| 每级速度卡增量 | 8 | 同上(4 + getInstalledUpgrades(SPEED) * 8) |
| 满速(4 张速度卡)传输量 | 4 + 4×8 = 36 | 由上两式推算 |
| 要素过滤槽 | 9 | MAX_FILTER_SIZE = 9(:139) |
| 容量卡上限 | 2 | AEPartsEnum.java:29 |
| 红石卡上限 | 1 | AEPartsEnum.java:30 |
| 速度卡上限 | 4 | AEPartsEnum.java:30 |
| 耗电倍率 | 1 | getPowerMultiplier()(:126-129) |
| 物品字典支持 | 无 | doOreDict 恒 false(:123-126) |
交互
| 触发 | 行为 |
|---|---|
相邻方块是 IAspectContainer |
按容器内要素抽取并注入网络 |
相邻方块不是 IAspectContainer |
立即返回,不做任何事(:88-89) |
| 要素 tag 不匹配 | 不导入(:91-92) |
| 放入容量卡 | 最多 2 张 |
| 放入速度卡 | 最多 4 张,每张 +8 传输量 |
| 放入红石卡 | 最多 1 张,启用红石模式控制 |
| 配置要素过滤 | 最多 9 条规则 |
| 渲染 | 客户端绘制静态指示灯 |
合成配方
奥术合成(Arcane Crafting),FeatureEssentiaIOBuses.java:92-93:
JDJ
IFI
| 字符 | 物品 |
|---|---|
J |
WardedJar(防护罐) |
D |
DiffusionCore(扩散核心) |
I |
IronIngot(铁锭) |
F |
FilterTube(过滤管) |
合成所需要素:FIRE 2 + EARTH 2 + WATER 1(FeatureEssentiaIOBuses.java:86-89)。
注册由 FeatureEssentiaIOBuses 在 isImportExportEnabled 为真时进行(:79-104)。该字段在 checkConfigs 中赋值(FeatureEssentiaIOBuses.java:41):
this.isImportExportEnabled = theConfig.craftIOBuses()
&& (AEConfig.instance.isFeatureEnabled(AEFeature.ImportBus)
|| AEConfig.instance.isFeatureEnabled(AEFeature.ExportBus));
即关闭 ThE 配置 craft_IO_Buses(默认 true)或 AE2 关闭 Import/Export Bus 特性,本总线即无法合成(Essentia Storage Bus 不受影响)。
Export Bus 配方与之对称,仅把 D 换成 C(CoalescenceCore):
JCJ
IFI
(FeatureEssentiaIOBuses.java:96-97)
相关条目
- Essentia Export Bus - 方向相反的对位总线
- Essentia Storage Bus - 面向外部储存罐的第三种总线
- Diffusion Core - 合成原料
- ThE 配置项 -
IO Buses开关