配方结构

基本信息

属性 值
入口 ModRecipes.initRecipes()(ModRecipes.java:34)
配方总数 36
研究条目 41(在 ModResearch.java,与配方分开统计)

数量是怎么来的(关键)

不能数 GameRegistry.addRecipe 的出现行数——本文件把所有配方包在 7 个私有辅助方法里。全文 registerResearchItem*( 匹配 44 处, 其中 8 处是方法定义,净得 36 条配方。

7 个辅助方法(定义行号)

方法 定义行 配方类型
registerResearchItem :548 奥术合成
registerResearchItemI(重载 1) :566 灌注
registerResearchItemShapeless :573 无序奥术合成
registerResearchItemI(重载 2) :579 灌注
registerResearchItemIUI :586 嵌套灌注结构
registerResearchItemIE :593 灌注 → 附魔
registerResearchItemIU :600 嵌套灌注结构
registerResearchItemC :607 构造(Cube)

5 个 init 分组

initRecipes()(:34)依次调用 5 个私有方法, 实测各组配方数(已扣除方法定义):

init 方法 定义行 配方数
initCraftingRecipes :495 0(内部改调 registerCraftingRecipe)
initArcaneRecipes :372 9(7 条有序 + 2 条 registerResearchItemShapeless)
initInfusionRecipes :56 26
initCrucibleRecipes :520 0(内部改调 registerCrucibleRecipe)
initConstructRecipes :42 1(BUILDTHINKTANK)

合计 9 + 26 + 1 = 36 条。

initCraftingRecipes / initCrucibleRecipes 直接匹配数为 0, 但它们并非空方法——它们调用 registerCraftingRecipe(:554)与 registerCrucibleRecipe(:560)两个更内层的辅助方法。 这正是「数调用点严重少算」的典型案例。

相关条目