Codex

基本信息

属性 值
注册名 VillageNames:codex
类 astrotibs.villagenames.item.ItemCodex(item/ItemCodex.java:37)
创造标签 CreativeTabs.tabMisc(item/ItemCodex.java:43)
纹理 assets/villagenames/textures/items/codex.png(item/ItemCodex.java:46)
合成配方 无(全仓库无 codex 合成配方;由交易或村民行为获得)

功能

Codex(符文书)是本 mod 的结构命名工具。在结构内部右键使用,即可为该结构生成并记录一个随机名称。

核心逻辑(item/ItemCodex.java:86 onItemRightClick):

  • 前置条件:背包内必须持有 Items.book(空白书),否则直接返回(item/ItemCodex.java:92)。缺少空白书时右键无任何效果。
  • 命名范围:按玩家所在维度分支。player.dimension == 0(主世界)时构建 mansion / Mansion 等结构名数组(item/ItemCodex.java:105 起),即本 mod 为 1.6+ 才有的林地府邸(Mansion)等结构提供命名入口。
  • 结果写入:名称与结构数据打包为 NBT,包含坐标、维度名、书页类型;村庄横幅数据会一并写入(item/ItemCodex.java:352 写入 BlockEntityTag)。
  • 名称拼接:按 structureInfoArray 的分段拼接成完整名称,段数为 3 时取第 1~3 段,2 段时取第 1~2 段,最后统一 trim()(item/ItemCodex.java:362-368)。

交互

触发 行为
右键(结构内) 生成该结构名称;需同时持有空白书
右键(结构外) 无有效结构数据,不产生名称

提示文本

物品提示由 4 条本地化键拼成(item/ItemCodex.java:61-68),对应 en_US.lang:24-27:

键 英文原文
itemtooltip.codex.1a Right-click when inside of a
itemtooltip.codex.1b structure to discover its name.
itemtooltip.codex.2a You must also have a blank book
itemtooltip.codex.2b for recording the name.

成就联动

成功命名结构时会计入 Archaeologist(考古学家) 成就的进度集合:新增结构类型后,若集合大小 >= VillageNames.numberStructuresArchaeologist 则解锁(item/ItemCodex.java:379-395)。

默认阈值为 7(VillageNames.java:131)。源码注释列出了这 7 种默认结构:村庄、沙漠金字塔、丛林神庙、沼泽小屋、废弃矿井、要塞、地狱要塞(VillageNames.java:123-130)。该数量是代码常量,若安装的附属 mod 增加了可命名结构则需按实际结构种类理解(源码注释亦说明这一点)。

相关条目