配方结构
基本信息
| 属性 | 值 |
|---|---|
| 入口 | 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)两个更内层的辅助方法。 这正是「数调用点严重少算」的典型案例。