Aspect 物品(aspectrecipeindex:aspect)

基本信息

属性 值
注册名 aspectrecipeindex:aspect
源码类 com.gtnewhorizons.aspectrecipeindex.common.items.ItemAspect
最大堆叠 64(Item 默认,本类未覆写)
附魔适用 否(未覆写 getItemEnchantability)
耐久度 无
创造模式标签 Thaumcraft.tabTC(Thaumcraft 的标签页)
子类型 是(setHasSubtypes(true))
注册时机 FMLPreInitializationEvent 中 ModItems.init()

这是本模组注册的唯一物品。它代表一个 Aspect(元素),供 NEI 的各 handler 把"元素"当作可搜索的伪物品使用。

物品变种如何区分

物品本体只有一个,具体是哪个 Aspect 存在 NBT 里,不在 metadata 里。

字段 类型 说明
NBT 键 Aspect String Aspect.getTag() 返回的元素 tag
metadata int 只被渲染器当作"图标可见性开关"使用,见下

源码提供两个静态辅助方法:

  • ItemAspect.getAspect(ItemStack) — 取出 NBT 中的 Aspect;item == null、无 NBT 或 tag 无法解析时返回 null。
  • ItemAspect.setAspect(ItemStack, Aspect) — 写入 NBT;无 NBT 时自动新建 NBTTagCompound。

功能

  • 在 NEI 中作为"元素"的载体:右键查询 / 查找用途可以命中所有把该元素当作 vis 消耗或 essentia 需求的配方。
  • 右键使用可消耗自身,直接获得 1 点该元素的 aspect pool(进而计入研究进度),详见 Aspect 研究点。
  • 创造模式列表自动枚举 Aspect.aspects.values(),因此 Thaumcraft 插件新增的元素也会自动出现在标签页里,无需改代码。

metadata 与图标可见性

物品渲染器按 metadata 决定是否显示真实图标:

metadata 行为
0 仅当查看者已发现该 Aspect 时显示真实图标,否则显示 ?
1 始终显示真实图标(无视是否已发现)
≥ 2 始终显示 ?

用途是让任务书 / 服务器装饰可以直接用固定 icon,而不必让每个玩家先去发现该元素。

getSubItems 生成的创造模式条目一律使用 metadata 0。

显示名称与提示

getItemStackDisplayName(客户端):

  1. 已发现 → 直接用 aspect.getName()。
  2. 未发现且 showUndiscoveredAspectNames = true → 格式串 aspectrecipeindex.aspect.undiscovered,即「%s (Undiscovered)」。
  3. 否则 → tc.aspect.unknown(Thaumcraft 的"未知")。

addInformation(客户端)按同一套开关决定追加 aspect.getLocalizedDescription() 还是 tc.aspect.unknown。

数值

属性 值
单次右键获得的 aspect pool 1
创造模式子物品数量 Aspect.aspects.values().size()

相关条目