Cell Microscope

基本信息

属性 值
注册名 thaumicenergistics:cell.microscope(ItemEnum.java:25,CELL_MICROSCOPE("cell.microscope", new ItemCellMicroscope()))
物品类 thaumicenergistics.common.items.ItemCellMicroscope(继承 Thaumcraft ItemThaumometer 元素测探仪,ItemCellMicroscope.java:36)
物品图标 thaumcraft:blank(复用 ThA 的空白图标,registerIcons,:62-64)
使用持续时间 50 tick(getMaxItemUseDuration 返回 50,:73-76)
扫描目标种类 2 种:掉落物电池 / 方块电池容器(TARGET_NONE=0、TARGET_ENTITY_ITEM=1、TARGET_CELL_CONTAINER=2,:46-49)
显示名 Cell Microscope(en_US.lang:thaumicenergistics.item.cell.microscope.name)

功能

Cell Microscope(电池显微镜)是一个扫描工具:它让玩家把 AE2 电池里装的东西当作扫描目标,批量完成 Thaumcraft 的要素鉴定,从而自动获得该物品的要素知识。对 GTNH 的高倍率配方包来说,这解决了「研究要素被电池锁住无法鉴定」的痛点。

核心机制(ItemCellMicroscope):

  • 继承 ItemThaumometer 而非普通 Item,因此具备完整的 ThA 扫描语义(ScanManager.isValidScanTarget / completeScan,:139-145)
  • 按住右键蓄力:onItemRightClick 定位目标并写入 NBT,setItemInUse(stack, 50)(:77-88)
  • 蓄力期间持续校验:onUsingTick 每 tick 重新定位目标,若与写入的不一致则清空并中断(:91-107)
  • 最后 5 tick 触发扫描:if (count <= 5) { stopUsingItem(); clearScanTarget(); doScan(); }(:103-106)
  • 两类目标(findScanTarget,:153-177):
    1. 视线 10 格内的 EntityItem,且其 ItemStack 能被 AE2 cell registry 解析为电池(EntityUtils.getPointedEntity(p.worldObj, p, 0.5D, 10.0D, 0.0F, true),:155)
    2. 视线所指方块位置的 TileEntity 实现 ICellContainer
  • 批量扫描:对电池容器会遍历 getCellArray(ITEM_STACK_TYPE) 的全部电池逐一扫描(:113-121),不是只扫一个
  • 逐物品扫描:对每个 IAEItemStack 构造 ScanResult(1, itemId, damage, null, "") 并调用 ScanManager.completeScan(p, sr, "@"),前缀 @ 表示「来自扫描工具」(:132-148)
  • 失败提示补发:ThA 只同步成功扫描到客户端,失败的不同步,因此 ThE 手动补发 Packet_C_CellMicroscopeScanFeedback.sendScanFeedback(p, sr) 以显示失败原因(:144-146)
  • 扫描音效:客户端每 2 tick 播放一次 thaumcraft:cameraticks,音量 0.2F,音高 0.45 + count/50 + rand×0.1(playScanEffects,:182-191)
  • NBT 键:scanType / scanEntity / scanX / scanY / scanZ(:38-43)

注意:本物品只扫描 ITEM_STACK_TYPE(物品电池)。源码中 doInventoryScan 与 isItemStorageCell 均写死 ITEM_STACK_TYPE,不扫描 ThE 自己的要素电池(ESSENTIA_STACK_TYPE)—— 这是源码的确定行为,非疏漏描述。

数值

数值名 值 来源
蓄力时间 50 tick getMaxItemUseDuration 返回 50(:73-76)
扫描触发点 剩余 ≤ 5 tick if (count <= 5)(:103)
视线拾取距离 10.0 格 EntityUtils.getPointedEntity(..., 10.0D, ...)(:155)
视线拾取扩张量 0.5 0.5D(:155)
音效间隔 每 2 tick if (count % 2 == 0)(:184)
音效 thaumcraft:cameraticks,音量 0.2F :186-190
合成所需要素 AIR 300 + EARTH 300 + ORDER 300 FeatureCellMicroscope.java:44-47
研究要素 VOID 5 + ENERGY 5 + CRYSTAL 3 + METAL 3 FeatureCellMicroscope.java:60-64
研究复杂度 COMPLEXITY_SMALL(=1) FeatureCellMicroscope.java:68
物品前置 无(getItemReqs 返回空数组 new Object[]{},:31-34) —

交互

触发 行为
按住右键瞄准掉落电池 定位并锁定目标,播放蓄力音效
蓄满 50 tick 对目标内所有物品批量完成 ThA 扫描
瞄准 ICellContainer 方块 遍历其全部电池槽逐一扫描
蓄力中移开视线 目标不匹配 → 清空 NBT 并中断扫描
扫描失败 手动补发客户端反馈封包,显示失败提示

合成配方

奥术合成(Arcane Crafting),FeatureCellMicroscope.java:48-54:

RTR
SQS
RPR
字符 物品
Q QuantumLink(量子链接)
P ItemP2P(AE2 P2P 隧道)
S Singularity(奇点)
T Thaumometer(元素测探仪)
R EssentiaMirror(要素镜)

合成所需要素:AIR 300 + EARTH 300 + ORDER 300(:44-47)—— 是本 mod 要素消耗最高的奥术配方之一(每种 300 点)。

研究(FeatureCellMicroscope.java:59-71):id thaumicenergistics.TECELLMICROSCOPE,研究要素 VOID 5 + ENERGY 5 + CRYSTAL 3 + METAL 3,复杂度 COMPLEXITY_SMALL(=1),图标为本物品,2 页(说明页 + 配方页),父研究为 getFirstValidParentKey(false)。父 feature 为 FeatureThaumicEnergisticsResearch;registerPseudoParents() 为空(:56)。该研究未调用 setConcealed(),因此在神秘录中直接可见。

本 feature 恒定启用:FeatureCellMicroscope.checkConfigs 直接 return true(FeatureCellMicroscope.java:25-28),源码中没有任何配置项或 AE2 特性门控它。

相关条目