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)

相关条目