Node Augmentation
基本信息
| 属性 |
值 |
| 注册名 |
ThaumicMachina:nodeAugmentation |
| 类 |
ItemNodeAugmentation(继承 TMItem) |
| 堆叠上限 |
未调用 setter —— Item 默认 64 |
| 伤害 / 耐久 |
未调用 setter —— 默认 0 / 可修复 |
| NBT 区分键 |
nodeAugmentation(字符串) |
| 变体数 |
2(loadAugmentations() 硬编码 2 个实例) |
| 唯一容器 |
Node Transmodifier 的 4 个 SlotLocked 槽 |
变体
物品本身只有一个注册名,区分靠 NBT 字符串(ItemNodeAugmentation.loadAugmentations,item/node/ItemNodeAugmentation.java:29-32):
| NBT 值 |
类 |
效果 |
Dual Charging |
AugmentationDualCharging |
无实际效果(handle() 恒返回 false) |
Enhanced Recharging |
AugmentationEnhancedRecharging |
反射改写 TileNode.regeneration 字段 |
安装后写进 TE 的 4 槽数组;NodeTransmodifier 触发时按 getAugmentation(stack) 解出实例并对区域内每个 TileNode 调 handle(node)。互斥与堆叠规则见 节点改装系统。
数值
| 数值 |
值 |
| 变体数 |
2 |
| 堆叠上限 |
64(默认值) |
| NBT 键 |
nodeAugmentation(TAG_String) |
| 槽内 stackLimit |
1(由 SlotLocked 之外 TE 的 getInventoryStackLimit() 强制) |
| tooltip |
"Augmentation: " + nbt(addInformation) |
交互
| 触发 |
行为 |
| 拾取 |
普通物品 |
| 放入 Node Transmodifier |
SlotLocked.isItemValid 只放行 TMObjects.nodeAugmentation |
| 移出 |
标准 Slot 行为;TileNodeTransmodifier 未覆写 transferStackInSlot |
| 放回玩家背包 |
保留 NBT 变体 |
源码缺陷
- 无配方。全仓无
GameRegistry.addRecipe 调用,生存模式无法获得。
getSubItems 只对客户端生效(@SideOnly(Side.CLIENT)),服务端无对应分支 —— 这是 1.7.10 的正常做法,但意味着服务器发 /give 或用命令生成时不会带变体 NBT,需要手工写 NBT。
getAugmentation(ItemStack) 对 null 不安全但对空 NBT 静默失败:NBTHelper.getCompoundFor 对无 NBT 的栈返回空 compound,比较不匹配即返回 null,安全;但这意味着任何缺失或拼错的 nodeAugmentation 字符串都会静默变成"无效改装",无报错。
ItemNodeAugmentation 不调用 setMaxStackSize(1),与 ItemWandAugmentationCore 的处理不一致。
- lang 缺条目:无
item.nodeAugmentation.celestial 之类的 subtype key(正确),但也没有 item.wandCore.celestial.name,Celestial Wand Core 未本地化(见 Celestial Wand Core)。
相关条目