样板接口
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | neenergistics:pattern_interface |
| 英文名 | Pattern Interface |
| 中文名 | 样板接口 |
| 方块类 | com.github.vfyjxf.nee.block.BlockPatternInterface(继承 AE2 AEBaseTileBlock) |
| TileEntity | com.github.vfyjxf.nee.block.tile.TilePatternInterface(继承 AE2 AENetworkInvTile) |
| 材质 | Material.iron(BlockPatternInterface.java:28) |
| TileEntity 注册名 | neenergistics.tile.pattern_interface(CommonProxy.java:57) |
| AE2 特性 | EnumSet.of(AEFeature.Core) |
| GUI ID | NEEGuiHandler.PATTERN_INTERFACE_ID |
源码注释一句话概括用途(TilePatternInterface.java:69):「An ME interface for storing temporary patterns.」
功能
它是 AE2「ME 接口」的变体,但不是存储物品,而是存储样板。工作方式:
- 玩家在 NEI 里查到一个配方,用本 mod 的叠加层把配方转成 ME 样板并送过来
- 界面把接收到的样板暂存进方块的 9 格
patterns库存 - 玩家再手动把这些样板取出、塞进真正的样板终端
因此它是「NEI → AE2 样板」转换链上的中转站,让玩家不用在 NEI 和终端之间来回切换。源码里的大量 PacketNEIPatternRecipe / PacketSlotStackChange 往返就是为此服务。
同时它也是一个 ICraftingProvider(TilePatternInterface.java:72)——接口里放的样板会被 AE2 网格当成可执行的加工请求。
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 待机功耗 | 30 AE/t | TilePatternInterface.java:94 setIdlePowerUsage(30D) |
| 网格标记 | GridFlags.REQUIRE_CHANNEL |
TilePatternInterface.java:93 — 必须独占一个频道 |
网格库存 gridInv |
10 格(9 + 1),单叠上限 1 |
TilePatternInterface.java:86-87 |
样板库存 patterns |
9 格 | TilePatternInterface.java:88 |
弹出库存 ejectInv |
9 格 | TilePatternInterface.java:89 |
| 侧面数组 | 9 个({0..8}) |
TilePatternInterface.java:74 |
轮询 workStarted |
9 个 boolean | TilePatternInterface.java:83 |
| tick 速率 | TickRates.Interface 的 min/max(AE2 接口类默认 40 tick) |
TilePatternInterface.java:123 |
REQUIRE_CHANNEL 是本方块最重要的平衡点:它和 AE2 各类接口一样要吃一个频道。
交互
| 触发 | 行为 |
|---|---|
| 右键 | 打开 GUI(NEEGuiHandler.openGui,BlockPatternInterface.java:45) |
| 潜行 + 右键 | 返回 false,让潜行行为穿透(BlockPatternInterface.java:38-40)——不吞事件 |
配方
唯一配方,ShapedOreRecipe(CommonProxy.java:84-99):
| 符号 | 物品 | AE2 定义 |
|---|---|---|
| a | 空白样板 | materials.blankPattern() |
| b | 样板终端 | parts.patternTerminal() |
| c | ME 接口 | blocks.iface() |
| d | 合成监控器 | blocks.craftingMonitor() |
| e | 智能缆(透明) | parts.cableSmart().stack(AEColor.Transparent, 1) |
a b a
c d c
e e e
所有 5 个材料都走 maybeStack(1).isPresent() 判空,缺任何一个就传 null 给 ShapedOreRecipe(CommonProxy.java:66-99),配方在缺件时不匹配而非崩。
已知注意点
TilePatternInterface 用 ReflectionHelper(:66)反射访问 AE2 内部类,因此在非 GTNH 修补版 AE2 上可能不兼容——这正是 dependencies 把 AE2 下限钉在 rv3-beta-754-GTNH 的原因(NotEnoughEnergistics.java:37)。