Chisel 模块(appeng.integration.modules.Chisel)

基本信息

属性 值
源码 appeng/integration/modules/Chisel.java
类声明 12,public class
实现接口 只有 IIntegrationModule(不实现任何 abstraction 接口)
静态单例 public static Chisel instance
modID chisel(IntegrationType.java:62)
side BOTH
本 wiki 收录情况 Chisel 未被本 wiki 收录 —— 写全名 Chisel

生命周期

阶段 行号 动作
init() 40 把 5 个 AE2 方块登记为 Chisel 变体
postInit() 60 空 {}

全部注入内容

// Chisel.java:40-58
public void init() {
    final IBlocks blocks = AEApi.instance().definitions().blocks();

    if (blocks.quartz().maybeBlock().isPresent())
        registerBlock(blocks.quartz().maybeBlock().get(), 0, "AECertusQuartz");
    if (blocks.quartzPillar().maybeBlock().isPresent())
        registerBlock(blocks.quartzPillar().maybeBlock().get(), 0, "AECertusQuartz");
    if (blocks.quartzChiseled().maybeBlock().isPresent())
        registerBlock(blocks.quartzChiseled().maybeBlock().get(), 0, "AECertusQuartz");
    registerOre("AECertusQuartz", "AECertusQuartz");

    if (blocks.skyStone().maybeBlock().isPresent()) {
        registerBlock(blocks.skyStone().maybeBlock().get(), 1, "AESkyStone");
        registerBlock(blocks.skyStone().maybeBlock().get(), 2, "AESkyStone");
        registerBlock(blocks.skyStone().maybeBlock().get(), 3, "AESkyStone");
        registerOre("AESkyStone", "AESkyStone");
    }
}
AE2 方块 damage Chisel 变体名 行号
blocks.quartz() 0 AECertusQuartz 43-44
blocks.quartzPillar() 0 AECertusQuartz 45-46
blocks.quartzChiseled() 0 AECertusQuartz 47-48
blocks.skyStone() 1 AESkyStone 52
blocks.skyStone() 2 AESkyStone 53
blocks.skyStone() 3 AESkyStone 54

共 6 次 registerBlock 调用,映射到 2 个 Chisel 变体名。

关键设计:全部包在 maybeBlock().isPresent() 里

三处 if(:43 / :45 / :47 / :51)用 Optional<Block>(IBlockDefinition.maybeBlock())判存在性。 这是因为 ApiBlocks 里每个方块定义都可能因 AEFeature 关闭而不存在。

所以:若相关 AEFeature 被关掉,对应的 Chisel 变体也不会注册。 blocks.skyStone() 整块被 :51 的 if 包住, 而 blocks.quartz() 等三处各自独立判。

registerOre 的两次调用

行号 变体名 ore 字典名
49 AECertusQuartz AECertusQuartz
55 AESkyStone AESkyStone

变体名与 ore 名相同。

⚠️ registerBlock / registerOre 的实现在 Chisel.java 的 :40 之前 (私有方法),调用方是本 init()。本条目只记录调用点。

AE2 侧方块不是 Chisel 的

⚠️ AECertusQuartz / AESkyStone 是注册进 Chisel 的变体名, 不是 AE2 的方块名。AE2 自己的注册名见对应条目:

Chisel 变体名 对应 AE2 方块条目
AECertusQuartz 方块石英、方块石英柱、雕刻石英
AESkyStone 方块天空石

mod 没装时是否安全跳过

是。chisel 未装 → FAILED → Chisel.class 不加载。

⚠️ Chisel.java 的 import 清单里是否有 chisel.* 需以源码为准; 若使用 Class.getName() 字符串则无编译期依赖。

相关条目