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
- 槽 1 只接受 AE2 空白图案
- 库存与要素分别持久化:物品库存键
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)。
相关条目
- Knowledge Inscriber - 物品合成自动化对位方块
- Essentia Export Bus - 执行本方块产出配方的总线
- ThE 网络封包 - 本方块的客户端/服务端封包
- ThE 研究体系 - 本方块所属的研究节点
- ThE 配置项 -
Distillation Pattern Encoder开关