施法聚焦(Focus)
基本信息
| 属性 | 值 |
|---|---|
| 物品数量 | 10(普通系 7 + KAMI 系 3) |
| 普通系基类 | thaumic.tinkerer.common.item.foci.ItemModFocus(继承 Thaumcraft ItemFocusBasic) |
| KAMI 系基类 | thaumic.tinkerer.common.item.kami.foci.ItemModKamiFocus |
| 注册位置 | TTRegistry.preInit(),TTRegistry.java:71-77(普通)与 TTRegistry.java:100-102(KAMI) |
| 注册门槛 | 普通系 shouldRegister() 恒 true(ItemModFocus.java:61-63);KAMI 系为 ConfigHandler.enableKami(ItemModKamiFocus.java:148-150) |
| 创造标签 | 是(ItemModFocus.shouldDisplayInTab() 返回 true) |
10 个聚焦全部是法杖聚焦(wand focus),安装到法杖后改变右键行为。两者共用同一套 hasOrnament() / hasDepth() 图标叠加机制(ItemModFocus.java:44-50)。
功能
| 聚焦 | 排序前缀 | 每次使用消耗 | 说明 |
|---|---|---|---|
| Focus of Deflect | TTDF |
ORDER 8 + AIR 4 | 弹射投射物;含黑名单,见下 |
| Focus of Dislocation | TTDL |
ENTROPY 500 + ORDER 500 + EARTH 100 | 位移方块,分 3 档定价 |
| Focus of Ender Chest | — | ENTROPY 100 + ORDER 100 | 末影箱接口,加载 EnderStorage 时排序键改走兼容层 |
| Focus of Flight | TTFL |
AIR 15 | 创造飞行,受 ConfigHandler.enableFlight 控制 |
| Focus of Healing | TTHE |
EARTH 45 + WATER 45 | 治疗玩家 |
| Focus of Smelting | TTEF |
FIRE 45 + ENTROPY 12 | 熔炼目标方块 |
| Focus of Telekinesis | TTTE |
AIR 5 + ENTROPY 5 | 远程抓取方块实体 |
| Focus of Kami Recall | TTKCR |
AIR 4000 + EARTH 4000 + ORDER 4000 | KAMI 系 |
| Focus of Shadowbeam | TTKSH |
全部可配置 | KAMI 系;定价与伤害见下 |
| Focus of XP Drain | TTKXP |
运行时填充 | KAMI 系;每 tick 计费 |
要素常量来源:各类的 private static final AspectList visUsage 字段(ItemFocusDeflect.java:51、ItemFocusDislocation.java:62-67、ItemFocusEnderChest.java:42、ItemFocusFlight.java:40、ItemFocusHeal.java:40、ItemFocusSmelt.java:31、ItemFocusTelekinesis.java:41、ItemFocusRecall.java:42-43、ItemFocusShadowbeam.java:40-41)。
数值
Focus of Dislocation 的三档定价
同一个聚焦按目标类型使用不同的 AspectList(ItemFocusDislocation.java:62-67):
| 目标 | 要素消耗 |
|---|---|
| 普通方块 | ENTROPY 500 + ORDER 500 + EARTH 100 |
| TileEntity 方块 | ENTROPY 2500 + ORDER 2500 + EARTH 500 |
| 刷怪笼 | ENTROPY 10000 + ORDER 10000 + EARTH 5000 |
该聚焦可位移的方块受 ConfigHandler.blockBlacklist(配置键 Focus of Dislocation Blacklist)限制,默认排除 avaritiaddons:CompressedChest 与 avaritiaddons:InfinityChest(ConfigHandler.java 中 blockBlacklist 定义处)。
Focus of Shadowbeam 的可配置定价
Shadowbeam 是唯一把全部要素消耗暴露到配置的聚焦(ItemFocusShadowbeam.java:40-42):
| 数值 | 配置键 | 默认值 |
|---|---|---|
| ORDER 消耗 | ordo vis cost |
25 |
| ENTROPY 消耗 | perditio vis cost |
25 |
| AIR 消耗 | aer vis cost |
15 |
| 基础伤害 | shadowbeam base damage |
8 |
对应字段 ConfigHandler.visShadowbeamOrder / visShadowbeamEntropy / visShadowbeamAir / baseDamageShadowbeam,全部在 配置:KAMI 与暗影束 中列出。
Focus of XP Drain
ItemFocusXPDrain.java:35 将 visUsage 声明为空的 new AspectList()(非 static final),且覆写 isVisCostPerTick() 返回 true。实际扣费在别处按运行时状态填充,本类的 visUsage 字段本身不含静态定价。
交互
- Focus of Deflect 黑名单:
ItemFocusDeflect.DeflectBlacklist(ItemFocusDeflect.java:50)在TTCommonProxy.postInit()→ItemFocusDeflect.setupBlackList()(TTCommonProxy.java:194)中填充,先无条件加入EntityExpBottle,再在LoadedMods.bloodMagicLoaded为真时调用BloodMagic.setupClass()追加WayofTime.alchemicalWizardry.common.entity.projectile.EntityParticleBeam(compat/BloodMagic.java:13)。该类名是字符串反射引用;已核对它在mirror/BloodMagic仓中确实存在(WayofTime/alchemicalWizardry/common/entity/projectile/EntityParticleBeam.java)。 - Focus of Ender Chest:
getSortingHelper()在LoadedMods.enderStorageLoaded为真时改用EnderStorageFunctions.getSortingHelper(stack)(ItemFocusEnderChest.java:79-81)。 - Focus of Dislocation:排序键额外拼接
getUniqueKey(stack),用于区分 NBT 中记录的目标方块名与 meta(ItemFocusDislocation.java:171)。 - KAMI 系共同行为:
onPlayerStoppedUsingFocus()覆写为空实现(ItemModKamiFocus.java:142-145),onFocusBlockStartBreak()返回false(ItemModKamiFocus.java:152-154),canApplyUpgrade()对所有升级类型返回true(ItemModKamiFocus.java:156-158)。
合成配方
ItemModFocus.getRecipeItem() 统一返回 null(ItemModFocus.java:71-73),即 10 个聚焦的配方不由本模组通过 TTRegistry 注册。TTRegistry.init() 只在 getRecipeItem() != null 时才注册配方(TTRegistry.java:152-157),因此这些聚焦没有本模组自带的合成配方;实际获取途径无法从本仓库核实。
相关条目
- 配置:KAMI 与暗影束 - Shadowbeam 的 4 个可配置数值
- 软依赖 - EnderStorage 与 Blood Magic 对本维度的行为影响
- 研究总览 - FOCUS_FLIGHT 等 6 个聚焦相关研究键