Flux Wand Trigger

基本信息

属性 值
类 FluxWandTrigger(实现 thaumcraft.api.wands.IWandTriggerManager)
唯一方法 performTrigger(World, ItemStack, EntityPlayer, int×3, int, int)
返回值 恒 true(无条件)
注册目标 ConfigBlocks.blockFluxGas meta 0、ConfigBlocks.blockFluxGoo meta 0
注册 API WandTriggerRegistry.registerWandBlockTrigger(trigger, 1, block, 0)
优先级参数 1
注册时机 ProxyCommon.preInit(core/proxy/ProxyCommon.java:47-48)

行为

FluxWandTrigger 是一个空触发器:整个 performTrigger 方法体只有一行 return true;(wand/augmentation/FluxWandTrigger.java:12-16),7 个参数全部未使用。

它在 preInit 中重复注册两次(Flux Gas 和 Flux Goo 各一次),意味着它完全替换了 Thaumcraft 原生的 Flux 清除触发器。原生 performTrigger 负责扣除玩家 Vis 来清除 Flux 方块;替换成恒 true 的空实现后,法杖右键 Flux 不再消耗 Vis 也不再清除方块 —— 方块永远不消失。

这是与 Taint Capping 方向相反的一套机制:Taint Capping 通过事件独立地把 Flux 变成 Vis,与被清空的原生触发器并存;而本条直接废掉了原生路径。

数值

数值 值
performTrigger 返回值 true(恒定)
注册次数 2(Flux Gas / Flux Goo)
注册优先级 1
目标 meta 0(两个方块均只注册 meta 0)
实现行数 5(1 行 return)

源码缺陷

  • 空实现覆盖原生逻辑。WandTriggerRegistry.registerWandBlockTrigger 同一 (block, meta) 重复注册会替换原 handler,导致原生 Flux 清除功能被静默禁用。这是明确的行为回退,且无任何注释说明意图。
  • 无注释的警告缺失:ProxyCommon.preInit 里有 /* WARNING - Removed try catching itself - possible behavior change. */(core/proxy/ProxyCommon.java:30-32),但指的是 try-catch 而非本注册,容易误导读者以为此处已有风险提示。
  • 7 个参数全部未使用,包括 world / stack / player —— 若本意是「记录玩家信息供后续使用」,则未完成。
  • 类名与行为不符:FluxWandTrigger 暗示处理 Flux,实际什么都不做。

相关条目