integration/modules/BCHelpers(bc-helpers)
覆盖范围
appeng.integration.modules.BCHelpers 包,5 个 .java 文件。
实测:find integration/modules/BCHelpers -name '*.java' | wc -l = 5。
| 文件 | 行号 | 继承 / 实现 |
|---|---|---|
BCPipeHandler.java |
24 | implements IExternalStorageHandler |
BCPipeInventory.java |
28 | implements IMEInventory<IAEItemStack> |
AEGenericSchematicTile.java |
25 | extends SchematicTile(BC 类) |
AECableSchematicTile.java |
32 | extends AEGenericSchematicTile + implements IPartHost |
AERotatableBlockSchematic.java |
19 | extends SchematicBlock(BC 类) |
分成两组
组 A:管道外部存储(2 个)
IExternalStorageHandler BCPipeHandler (:24)
└─ getInventory(...) ──────▶ BCPipeInventory (:28)
implements IMEInventory<IAEItemStack>
注册点:integration/modules/BuildCraftTransport.java:229
api.registries().externalStorage().addExternalStorageInterface(new BCPipeHandler());
这是 6 个 addExternalStorageInterface 调用点之一
(完整清单见 me/storage 总览)。
⚠️ BCPipeInventory 实现的是 AE2 的 IMEInventory<IAEItemStack>,
不是 BC 的类型。BC 管道在内部被适配掉。
组 B:蓝图 / schematic 支持(3 个)
| 类 | BC 父类 | 作用 |
|---|---|---|
AEGenericSchematicTile |
SchematicTile |
通用蓝图 tile 适配 |
AECableSchematicTile |
AEGenericSchematicTile + IPartHost |
线缆总线在蓝图中的宿主 |
AERotatableBlockSchematic |
SchematicBlock |
可定向方块的蓝图方块 |
继承链:
buildcraft.transport.SchematicTile
└─ AEGenericSchematicTile (:25)
└─ AECableSchematicTile (:32) implements appeng.api.parts.IPartHost
AECableSchematicTile implements IPartHost 意味着
AE2 的 part 可以被放进 BC 蓝图并作为线缆总线宿主存在。
IPartHost 定义在 appeng/api/parts/(不在本分片),
实现在 appeng/parts/(不在本分片)。
与 BuildCraftBuilder 的分工
| 关注点 | 模块 | helper |
|---|---|---|
| 管道读写 | BuildCraftTransport | BCPipeHandler / BCPipeInventory |
| 蓝图摆放 | BuildCraftBuilder | AECableSchematicTile / AERotatableBlockSchematic |
| 扳手 | BuildCraftCore | 无 helper |
BuildCraftBuilder.initBuilderSupport()
(integration/modules/BuildCraftBuilder.java:70-)登记的是方块到
ISchematicRegistry;而 3 个 Schematic 类提供的是运行时的 tile / block 实现。
本组直接继承 BC 的类 —— 无隔离层
⚠️ AEGenericSchematicTile extends SchematicTile 与
AERotatableBlockSchematic extends SchematicBlock
是编译期硬继承 BC 的类(与 abstraction/ 层的隔离风格相反)。
安全性来自 IntegrationNode:这 5 个类只在
BuildCraft|Transport 已加载时才被 loadClass
(integration/IntegrationNode.java:82),
所以 BC 缺席时 SchematicTile / SchematicBlock 不解析。
mod 没装时是否安全跳过
是,理由同上:BuildCraft|Transport 未装 → 该目标 FAILED →
本目录 5 个类不被加载。
⚠️ 但 BuildCraft|Transport 装而 BuildCraft|Core 没装时,
本目录仍会被加载(两者独立判定)。此时 SchematicTile 来自
Transport 而非 Core,可正常解析。
相关条目
- BuildCraftTransport 模块(注册方)
- BuildCraftBuilder 模块(另一组 BC 关注点)
- helpers 总览(4 个其它外部存储 adapter)
- me/storage 总览(6 个外部存储注册点)
- 方块线缆总线(
AECableSchematicTile的宿主)