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 增加了可命名结构则需按实际结构种类理解(源码注释亦说明这一点)。
相关条目
- Village Book - 用空白书右键村民时生成的村庄记录本,是 Codex 的配套产物
- Structure Books - 预置的各结构专用书
- Archaeologist - 由 Codex 命名进度触发的成就