Distillation Pattern Encoder

基本信息

属性 值
注册名 thaumicenergistics:distillation.encoder(BlockEnum.java:27)
方块类 thaumicenergistics.common.blocks.BlockDistillationEncoder
TileEntity thaumicenergistics.common.tiles.TileDistillationPatternEncoder(TileID thaumicenergistics.TileDistillationInscriber,注意 ID 字符串与类名不一致,TileEnum.java:22)
硬度 1.0f(BlockDistillationEncoder.java:38)
脚步声 Block.soundTypeMetal(BlockDistillationEncoder.java:41)
爆炸抗性 源码中 setResistance 0 命中,无显式数值可引用
创造标签 thaumicenergistics.ThETab(BlockDistillationEncoder.java:45)
显示名 Distillation Pattern Encoder(en_US.lang:thaumicenergistics.block.distillation.encoder.name)

功能

Distillation Pattern Encoder(蒸馏配方编码器)是 ThE 的要素合成自动化方块,对应 AE2 的 Pattern Provider 角色:把「原料 + 要素」定义成一条可重复执行的要素配方,供 ThE 的要素总线执行。它与 Knowledge Inscriber(物品合成自动化)分工不同 —— 本方块做要素配方,那台做物品配方。

核心机制(TileDistillationPatternEncoder,继承 ThETileInventory,实现 ISidedInventory + IIAEStackInventory):

  • 物品槽共 3 格(TileDistillationPatternEncoder.java:31-35):
    • SLOT_SOURCE_ITEM = 0 —— 源物品
    • SLOT_BLANK_PATTERNS = 1 —— 空白图案
    • SLOT_ENCODED_PATTERN = 2 —— 已编码图案
  • 要素槽共 16 格:ASPECT_SLOT_NUM = 16,由内部 IAEStackInventory aspectsInventory 承载(:39-41)—— 即配方可声明 16 种要素
  • 容器标识与栈上限:super("distillation.inscriber", SLOT_TOTAL_COUNT, 64)(:48),每槽上限 64
  • 完全自动化不可用:canInsertItem 与 canExtractItem 均返回 false(:51-59),getAccessibleSlotsFromSide 返回空数组(:65-67)—— 即不能被管道/传送带自动存取,必须玩家手动放入
  • 无需 tick:canUpdate() 返回 false(:61-64)
  • 破坏掉落:只掉落槽 2 的已编码图案与槽 1 的空白图案,不丢弃槽 0 的源物品(getDrops,:73-85)
  • 槽位校验严格(isItemValidForSlot,:96-120):
    • 槽 1 只接受 AE2 空白图案 AEApi...materials().blankPattern()
    • 槽 2 只接受 AE2 已编码图案 AEApi...items().encodedPattern()
    • 槽 0 与传入 null 一律返回 true
  • 库存与要素分别持久化:物品库存键 inventory,要素库存键 aspects(:124-143)
  • hasPatterns() 判断是否已有可编码的图案载体(:90-94)
  • 操作通过封包完成(Packet_C_DistillationEncoder / Packet_S_DistillationEncoder)

数值

数值名 值 来源
物品槽总数 3 SLOT_TOTAL_COUNT = 1 + 2(TileDistillationPatternEncoder.java:32-35)
源物品槽索引 0 SLOT_SOURCE_ITEM = 0(:37)
空白图案槽索引 1 SLOT_BLANK_PATTERNS = 1(:37)
已编码图案槽索引 2 SLOT_ENCODED_PATTERN = 2(:37)
要素槽数量 16 ASPECT_SLOT_NUM = 16(:39)
每槽栈上限 64 构造 super(..., 64)(:48)
管道自动化 不支持(canInsert/canExtractItem 恒 false) :51-59
硬度 1.0 BlockDistillationEncoder.java:38
爆炸抗性 源码未调用 setResistance(0 命中) —

交互

触发 行为
右键 打开编码器 GUI(3 物品槽 + 16 要素槽)
放入源物品 槽 0,定义被处理的物品(isItemValidForSlot 对槽 0 恒返回 true)
放入空白图案 槽 1,只接受 AE2 空白图案,其他物品一律拒绝(blankPattern().isSameAs(stack))
放入已编码图案 槽 2,只接受 AE2 已编码图案(encodedPattern().isSameAs(stack))
取出物品 传 null 时 isItemValidForSlot 恒返回 true,故清槽总是允许
声明要素 最多 16 种要素填入要素槽
管道/传送带 无法自动存取(canInsertItem/canExtractItem 返回 false,getAccessibleSlotsFromSide 返回空)
破坏 掉落槽 2 已编码图案与槽 1 空白图案;槽 0 源物品不通过 getDrops 掉落
Tick 不需要(canUpdate() 返回 false)

合成配方

奥术合成(Arcane Crafting),FeatureAutocrafting_Essentia.java:65-67:

IPI
 T 
IEI
字符 物品
I IronIngot
P IlluminatedPanel(AE2 照明面板)
T Thaumometer(元素测探仪)
E EngineeringProcessor(工程处理器)

合成所需要素:ORDER 5 + ENTROPY 5 + FIRE 3(:56-59)。

研究(FeatureAutocrafting_Essentia.java:73-99):id thaumicenergistics.TEDISTILLATIONPATTERNENCODER,研究要素 CRAFT 5 + EXCHANGE 5 + ENTROPY 5 + MECHANISM 3 + GREED 3 + MIND 1,复杂度 COMPLEXITY_LARGE(=3),图标为本方块,2 页(说明页 + 配方页),父研究为 getFirstValidParentKey(false)(父 feature 为 FeatureEssentiaIOBuses),setConcealed() 隐藏。registerPseudoParents() 为空(:71)。

可用性受配置 craft_Distillation_Pattern_Encoder(默认 true)控制(ConfigurationHandler.java:104-108)。

相关条目