Drill

基本信息

属性 值
注册名 EMT:ThaumiumDrill(魔素钻)/ EMT:DrillRockbreaker(碎岩钻)
源码类 ItemThaumiumDrill、ItemRockbreakerDrill(emt/item/tool/drill/)
基类 ItemThaumiumDrill extends ItemPickaxe implements IElectricItem(ItemThaumiumDrill.java:24)

两级数值

等级 效率 最大耐久 容量 maxCharge transferLimit tier 每次挖掘耗电 cost
魔素钻 20F 27 / 240 100 000 100 2 250(默认)/ 1
碎岩钻 25F 27 / 2 571 1 000 000 1 000 3 350(默认)/ 1

证据:

  • 魔素钻:ItemThaumiumDrill.java:26(maxCharge = 100000)、:28(tier = 2)、:29(transferLimit = 100)、:33(效率 20F)、:36-39(耐久分支)、:65-68(耗电分支)
  • 碎岩钻:ItemRockbreakerDrill.java:50(效率 25F)、:53-55(耐久分支)、:57(maxCharge = 1000000)、:58(transferLimit = 1000)、:59(tier = 3)、:90-93(耗电分支)

⚠️ 耗电字段名与 Omnitool/Chain saw 不同。 钻头类没有 hitCost 字段,只有 public int cost;(ItemThaumiumDrill.java:27),且该字段在构造器中从不赋值(Java 默认 0),而是在每次 onBlockDestroyed() 调用时按 toolsInBore 重新赋值。直接读字段会得到 0——这是「未调用 setter 即默认值」陷阱的典型样本。

toolsInBore 同时改耐久与耗电

钻头是唯一把两个属性绑在同一个开关上的工具族:

// 耐久:ItemThaumiumDrill.java:36-39
if (EMTConfigHandler.toolsInBore == false) this.setMaxDamage(27);
else this.setMaxDamage(240);

// 耗电:ItemThaumiumDrill.java:65-68
if (EMTConfigHandler.toolsInBore == false) cost = 250;
else cost = 1;

toolsInBore 默认 false,故默认状态是「耐久 27、每次挖掘 250 EU」。开启后耐久升至 240/2571 且耗电降到 1 EU——这与配置项自身描述(“decrease the EU cost to 1”)一致。

碎岩钻对蹲下(isSneaking)有额外分支(ItemRockbreakerDrill.java:95-97)。

配方分支

碎岩钻与魔素钻的配方在 enableGTCompat 两侧走不同的合成路径(emt/init/EMTRecipes.java:550、:653):

if (Registry.enableGTCompat) { ... } else {
    rockbreakerDrill = addInfusionCraftingRecipe(...)
}

GTNH 中 enableGTCompat == true,故走 GT 兼容分支。

依赖范围

IC2 不在本 wiki 收录范围,不建分类链接。

相关条目