法杖配件与透镜
基本信息
| 属性 | 值 |
|---|---|
| 透镜数量 | 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) |
相关条目
- 物品列表:注入与消耗品 - 注射器、样本、营养剂等
- 研究列表 - 6 条透镜研究 + 5 条焦点研究的要素与复杂度
- 第三方模组集成 - 透镜盒依赖 Baubles 饰品栏