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 收录范围,不建分类链接。
相关条目
- Chainsaw
- Omnitool
- EMT Config -
toolsInBore、两项研究开关 - GregTech - 合成依赖