法杖配件与透镜

基本信息

属性 值
透镜数量 6(5 种单透镜 + 1 个透镜盒)
透镜抽象 common/items/lenses/ILens(3 个方法:lensName() / handleRender / handleRemoval)
透镜管理 common/items/lenses/LensManager
透镜 GUI ID 8(common/CommonProxy.java:94-96 → ContainerCase / GuiCase)
透镜切换封包 PacketLensChangeToServer(PacketHandler.java:28,Side.SERVER)
wand 焦点数量 5
注册区间(透镜) common/ThaumicHorizons.java:640-645
注册区间(焦点) common/ThaumicHorizons.java:646-650

粒度选择:6 个透镜共用同一个 ILens 接口与同一个 LensManager 管理器,5 个焦点共用同一个父类且差异仅在具体效果,合并为单页 + 变体表。

透镜列表

透镜不调用 setUnlocalizedName,而是各自实现 ILens.lensName()(如 ItemLensAir.java:45 返回 "LensAir")与本地化键(ItemLensAir.java:167 返回 "item.LensAir"),由 LensManager 以 lensName() 为键做字符串分发(LensManager.java:45、:53、:62、:201-202)。

注册名 名称 类 lensName() 语言键 研究 注册行
lensFire Illumine Lens ItemLensFire LensFire item.LensFire.name lensFire(复杂度 2) 640
lensWater Echo Lens ItemLensWater LensWater item.LensWater.name lensWater(1) 641
lensAir Kirlian Lens ItemLensAir LensAir item.LensAir.name lensAir(-1) 642
lensEarth Evanescent Lens ItemLensEarth LensEarth item.LensEarth.name lensEarth(3) 643
lensOrderEntropy Scholar’s Lens ItemLensOrderEntropy LensOrderEntropy item.LensOrderEntropy.name lensOrderEntropy(5) 644
lensCase Lens Case ItemLensCase — item.lensCase.name lensCase(2) 645

透镜效果差异实现在各自的 handleRender / handleRemoval 中(LensManager 另持有 nightVisionOffTime 字段,LensManager.java:27,并通过 PacketRemoveNightvision 同步夜视结束)。各透镜的具体像素级效果未逐行核对,此处只记录可确证的结构。

ItemLensCase 额外实现 Baubles 的 IBauble(common/items/lenses/ItemLensCase.java:23-24 导入 baubles.api.BaubleType / IBauble),可作为饰品佩戴;堆叠上限 1、耐久 0(:33、:35)。LensManager.java:22 导入 baubles.api.BaublesApi 用于定位玩家饰品栏。

合成配方

每种透镜各有一条 Thaumcraft 4 注入配方,配方名与研究 id 同名(lensFire / lensWater / lensAir / lensEarth / lensOrderEntropy / lensCase),由对应的 recipeLens* 静态字段持有(common/ThaumicHorizons.java:458 等)。各配方的等级与要素消耗见 研究列表 的要素列,例如 lensOrderEntropy 需 SENSES 4; MIND 4; MAGIC 2。

LensCase 与透镜合成的具体材料未逐条核对,属「无法核实」范围。

焦点列表

5 个 wand 焦点均通过 ThaumcraftApi.addWandFocus 体系注册,注册名与语言键如下:

注册名 名称 类 语言键 研究 注册行
focusContainment Wand Focus: Containment ItemFocusContainment item.focusContainment.name focusContainment(8) 646
focusLiquefaction Wand Focus: Liquefaction ItemFocusLiquefaction item.focusLiquefaction.name focusLiquefaction(1) 647
focusDisintegration Wand Focus: Disintegration ItemFocusDisintegration item.focusDisintegration.name focusDisintegration(3) 648
focusIllumination Wand Focus: Illumination(16 色) ItemFocusIllumination item.focusIllumination.<meta>.name focusIllumination(-1) 649
focusAnimation Wand Focus: Animation ItemFocusAnimation item.focusAnimation.name focusAnimation(12) 650

焦点升级(Upgrade)

en_US.lang 中的 focus.upgrade.* 条目是本模组为焦点提供的可升级词条,共 9 组,每组含 .name 与 .text:

键 名称 效果摘要(lang 原文要点)
focus.upgrade.slow Slow 被禁锢光束击中的实体被短暂减速,便于命中
focus.upgrade.golemDuration Golem Duration 该焦点造出的傀儡在动画结束后额外保持 10 秒
focus.upgrade.berserk Berserk 造出的傀儡被愤怒消耗;若未装非战斗系动画核心,会攻击所有附近生物(含其他方块造的傀儡)以及除创造者外的所有玩家
focus.upgrade.detonation Detonation 造出的傀儡在战斗中被击败或动画到期时爆炸
focus.upgrade.nuggets Nuggets 该焦点熔炼矿石时像地狱熔炉一样额外产出粒
focus.upgrade.purity Purity 熔炼时把矿石提纯为原生矿簇,产出更可用的金属
focus.upgrade.enervation Enervation 分解光束抽取生命,既造成伤害又减缓逃逸速度
focus.upgrade.solar Solar 造出的法球接触亡灵时点燃
focus.upgrade.headlightfluid Liquid Light 该焦点可 underwater 工作,为 1 立方米流体注入柔光;效果脆弱,用桶舀走即失效

升级的具体实现类(如 UpgradeSlow、UpgradeBerserk 等)位于 common/lib/potion 与焦点类内部,类名与注册映射未逐一核对。

焦点自身数值

ItemFocusAnimation 与 ItemFocusIllumination 的构造函数中调用 setMaxDamage(0)(common/items/ItemFocusAnimation.java:43、ItemFocusIllumination.java:39),即两者不可损坏。ItemFocusContainment 构造时把 depthIcon 置 null(common/items/ItemFocusContainment.java:61)。

数值:wand 杆与帽

模组注册了 1 套自定义 wand 材料(common/ThaumicHorizons.java:503-511):

项 值 行
杆注册名 disposable 504
杆耐久 250 505
杆基础 ItemStack Blocks.bedrock 506
杆容量 99 507
杆贴图 thaumichorizons:textures/models/crystalRod.png 508
帽注册名 disposable 509
帽消耗值 0.9F 509
帽基础 ItemStack Blocks.bedrock 509
帽容量 99 509
帽贴图 thaumichorizons:textures/models/crystalCap.png 510
杆发光 ROD_CRYSTAL.setGlowing(true) 511

语言键 item.Wand.disposable.cap = Disposable、item.Wand.disposable.rod = Crystalline。

对应的物品是 ThaumicHorizons:wandCastingDisposable(ItemWandCastingDisposable,注册于 common/ThaumicHorizons.java:680),setMaxDamage(0)(common/items/ItemWandCastingDisposable.java:27)。另有 ThaumicHorizons:crystalWand(ItemCrystalWand,注册名 crystalWand,:681),堆叠上限 1(common/items/ItemCrystalWand.java:22),对应研究 crystalWand(复杂度 15)。

交互

触发 行为
透镜切换 LensManager.changeLens(stack, world, player, lens);客户端发 PacketLensChangeToServer 到服务端校验(PacketHandler.java:28)
透镜渲染 / 移除 由各透镜实现 ILens.handleRender(Minecraft, float) 与 ILens.handleRemoval(EntityPlayer)
透镜盒 GUI ID 8,ContainerCase + InventoryCase + GuiCase
夜视结束同步 PacketRemoveNightvision(PacketHandler.java:42,Side.CLIENT)

相关条目