Village Book
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | VillageNames:villagebook |
| 类 | astrotibs.villagenames.item.ItemVillageBook(item/ItemVillageBook.java:19) |
| 父类 | net.minecraft.item.ItemEditableBook |
| 创造标签 | 继承默认(ItemEditableBook) |
功能
Village Book(村庄书)是用空白书右键村民后生成的记录本,记录该村庄的名称、村民职业,以及在满足条件时给出的附近结构方位提示。
本 mod 所有书类共用 ItemVillageBook,仅在构造时传入不同的 unlocalized name(item/ModItems.java:18-36),因此 Village Book 本身并非可手工合成的独立物品,而是行为产物:其 NBT 内容由事件处理器写入。
onItemRightClick 仅在客户端打开书写界面(item/ItemVillageBook.java:67-73):
if (par3EntityPlayer.worldObj.isRemote) {
Minecraft.getMinecraft().displayGuiScreen(new GuiScreenBook(par3EntityPlayer, par1ItemStack, false));
}
第三个参数为 false,即打开的书本不可编辑(item/ItemVillageBook.java:70)。
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 初始页数 | 1 页(内容为字符串 "Page 1",非 ItemEditableBook 默认的 2 页签名+正文) |
item/ItemVillageBook.java:55-57 |
| 书本发光 | 否(hasEffect 被覆写为返回 false,注释说明"Returning “false” stops the book from glowing") |
item/ItemVillageBook.java:75-79 |
交互
| 触发 | 行为 |
|---|---|
| 右键 | 客户端打开 GuiScreenBook 书写界面(不可编辑) |
| 村民处右键空白书 | 生成 Village Book(受配置 villagerMakesBook 控制) |
与村民的交互
村民侧的书籍生成由 EntityInteractHandler 处理,生成的书本页面由 WriteBookHandler 构造。WriteBookHandler 负责:
- 判定玩家所在村庄(
Village.dat),失败时回退到 OTG 村庄数据(handler/WriteBookHandler.java:332、:339) - 计算附近结构方位提示(
handler/WriteBookHandler.java:706writeStructureHintPage) - 触发 Ghost Town 成就:为空村庄生成 Village Book 时解锁(
handler/WriteBookHandler.java:234-235)
相关条目
- Codex - 结构命名工具,与本书记配合使用
- Structure Books - 各结构对应的专用书籍
- Ghost Town - 为空村庄记录书本触发的成就
- villager settings - 控制村民是否制作书本与 Codex 的配置