Research NODECATALYZATION(节点催生)
基本信息
| 属性 | 值 |
|---|---|
| 研究键 | NODECATALYZATION |
| 中文名 | 节点催生 |
| 英文名 | Node Catalyzation |
| 研究副标题(zh_CN) | 无中…生有 |
| 类别 | BASICS |
| 复杂度要素 | AURA 20、VOID 15、GREED 12、ELDRITCH 9、MIND 6、MAGIC 3(合计 65) |
| 图标 | 节点基体 |
| 父研究 | NODEJAR、NODETAPPER2 |
| 隐藏父研究 | JARLABEL(setParentsHidden) |
| 特殊标记 | 调用了 setSpecial()(其具体作用由泰老 ResearchItem 实现定义) |
| 扭曲值 | 研究扭曲 8(addWarpToResearch)+ 节点基体物品扭曲 8(addWarpToItem) |
| 注册时机 | NodalResearch.initResearch()(FMLPostInitializationEvent) |
| 页面数 | 6(1 文本页 + 5 配方页) |
NodalMechanics 是整个 mod 唯一的泰老研究,也是全部三个配方的唯一前置:
matrixRecipe、动态的 RecipeAttune、动态的 RecipeNode 都在
ThaumcraftApiHelper.isResearchComplete(player.getCommandSenderName(), "NODECATALYZATION")
处做同一道校验。研究未完成时,节点基体无法合成、无法调制、也无法催生节点。
构造参数原文
new ResearchItem("NODECATALYZATION", "BASICS",
new AspectList().add(Aspect.AURA, 20).add(Aspect.VOID, 15).add(Aspect.GREED, 12)
.add(Aspect.ELDRITCH, 9).add(Aspect.MIND, 6).add(Aspect.MAGIC, 3),
-5, 4, 3,
new ItemStack(NodalItems.itemMatrix))
.setPages(...).setParents("NODEJAR", "NODETAPPER2").setParentsHidden("JARLABEL").setSpecial();
- 前三个整型参数按调用顺序为
-5、4、3。它们对应 TC4ResearchItem(String key, String category, AspectList, int, int, int, ItemStack)的位置, 通常是研究面板的行 / 列 / 索引参数;TC4 的构造器不在本仓库内,具体语义未在此断言, 这里只如实记录传值。 - 复杂度要素合计 65(AURA 20 最高),位置在
BASICS分类内偏高,属于中后期研究。
页面构成
| 页 | 类型 | 内容 |
|---|---|---|
| 1 | 文本 | nodalmechanics.nodecatalyzation.research(zh_CN:「将你关于节点和要素罐子的学识付之一用…之后给其注入大量的要素就能激发它的生成。」) |
| 2 | 配方 | NodalRecipes.matrixRecipe — 初始基体配方 |
| 3 | 配方 | NodalRecipes.variedAttuneRecipe — 六种本原要素各 2 的基体 |
| 4 | 配方 | NodalRecipes.sameAttuneRecipe — IGNIS 16 的基体 |
| 5 | 配方 | NodalRecipes.variedNodeRecipe — 六本原各 8 vis + 4 × itemResource:14 |
| 6 | 配方 | NodalRecipes.sameNodeRecipe — IGNIS 64 vis + 4 × itemResource:14 |
页面 3~6 是静态 ShapedArcaneRecipe / InfusionRecipe,只为展示配方图。
NodalRecipes.initRecipes() 只把 matrixRecipe、RecipeAttune、RecipeNode 三个
注册进 ThaumcraftApi.getCraftingRecipes(),其余四张从不参与实际合成判定。
因此:
- 页面上的"ABC / X / DEF"与"AAA / ABA / AAA"布局不是硬性要求, 实际按 Matrix Attunement 的规则判定(任意本原要素组合的源质瓶均可);
- 页面上的
nodetype固定 0(NORMAL)也不代表实际结果—— 实际类型/修饰符按 Node Infusion 的概率随机。
页面 2:初始基体配方
| 参数 | 值 |
|---|---|
| 研究 | NODECATALYZATION |
核心物品(key) |
节点基体 |
| 不稳定性 | 10 |
| 要素消耗 | 禁忌 SLOTH 16、PRIDE 16、AURA 32、MAGIC 32 |
| 注入材料 | deadlyShards meta 3、itemShard:6、deadlyShards meta 5、itemShard:6、deadlyShards meta 5、itemShard:6 |
产物(recipeOutput) |
IC2 Ic2Items.lapotronCrystal(meta = WILDCARD) |
key 为基体、recipeOutput 为拉普隆晶体的组合与直觉相反,是照抄源码原样记录;
实际注魔机返还哪一个栈由泰老的 InfusionRecipe / BlockArcaneInfusion 决定,
不在本 mod 内(详见 节点基体 的配方章节)。
扭曲值
| 项目 | 值 | API |
|---|---|---|
| 研究扭曲 | 8 | ThaumcraftApi.addWarpToResearch("NODECATALYZATION", 8) |
| 节点基体物品扭曲 | 8 | ThaumcraftApi.addWarpToItem(new ItemStack(itemMatrix), 8) |
合成节点基体的行为扭曲 8;同时节点基体在被右键检视等场合也会显示 8 点扭曲。 扭曲的具体数值效果由泰老定义。
限制与已知风险
- 本原要素数量硬编码为 6:
NodalRecipes构造variedAttuneRecipe时写死ItemStack[] phials = new ItemStack[6],随后却用for (int i = 0; i < primalAspects.size(); i++) phials[i] = ...填充。 泰老本体的本原要素正好 6 种;若其他 mod 追加第 7 种本原要素,初始化阶段会抛ArrayIndexOutOfBoundsException。这是照源码推断的硬上限,不是 mod 作者显式写下的检查。 - 研究的三个整型参数依赖 TC4 构造器签名,本仓库无法验证其含义。
setSpecial()的语义、以及NODECATALYZATION对泰老完成度统计的影响,均由泰老实现决定。- 父研究
NODEJAR/NODETAPPER2与隐藏父JARLABEL均为泰老自带的节点/罐子研究, 需先完成对应研究才会出现在正常研究列表流程中。
相关条目
- 节点基体 - 研究图标与产物载体,扭曲 8
- Matrix Attunement - 页面 3/4 图示的动态实现
- Node Infusion - 页面 5/6 图示的动态实现