Lexica Botania
基本信息
| 属性 | 值 |
|---|---|
| 物品注册名 | Botania:lexicon(显示名 “Lexica Botania”) |
| 数据类 | vazkii.botania.common.lexicon.LexiconData(1498 行) |
| 分类类 | BLexiconCategory(extends LexiconCategory) |
| 条目类族 | ALexiconEntry、BLexiconEntry、CLexiconEntry、DLexiconEntry、HLexiconEntry、RLexiconEntry、TLexiconEntry、WLexiconEntry、WIPLexiconEntry |
| 页面类型 | 16 个(common/lexicon/page/) |
| 分类数 | 10 |
| 条目总数 | 227(全部已赋值,见下) |
功能
Lexica Botania 是 Botania 的内置百科全书,也是主要的任务引导系统。它通过 10 个分类组织 227 个条目,每个条目由若干 Page(页面)组成。条目的子类决定其"知识类型"(knowledge type),玩家需要通过游戏内行为解锁对应内容 —— 例如 ALexiconEntry 使用 BotaniaAPI.elvenKnowledge(ALexiconEntry.java),RLexiconEntry 对应遗物知识(与成就绑定,如 new RLexiconEntry(LibLexicon.ALF_KING_KEY, categoryAlfhomancy, ModAchievements.relicKingKey),LexiconData.java:1321)。
CLexiconEntry 是外部模组专用条目,接受第三个参数指定来源模组,用于记录整合包内其他模组的内容:
bcIntegration = new CLexiconEntry(LibLexicon.MISC_BC_INTEGRATION, categoryMisc, "BuildCraft"); // :1463
tcIntegration = new CLexiconEntry(LibLexicon.MISC_TC_INTEGRATION, BotaniaAPI.categoryMisc, "Thaumcraft"); // :1476
banners = new CLexiconEntry(LibLexicon.MISC_BANNERS, BotaniaAPI.categoryMisc, "EtFuturum"); // :1493
数值
10 个分类
全部在 LexiconData.preInit() 中通过 BotaniaAPI.addCategory(...) 无条件注册(LexiconData.java:298-311)。分类名前缀为 botania.category.(LibLexicon.CATEGORY_PREFIX)。
| 分类 | 常量 | 注册键 | 优先级 | 条目数 |
|---|---|---|---|---|
| Basics and Mechanics | categoryBasics |
basics |
9 | 11 |
| Mana Manipulation | categoryMana |
mana |
5 | 20 |
| Generating Flora | categoryGenerationFlowers |
generationFlowers |
5 | 17 |
| Functional Flora | categoryFunctionalFlowers |
functionalFlowers |
5 | 28 |
| Natural Apparatus | categoryDevices |
devices |
5 | 24 |
| Mystical Items | categoryTools |
tools |
5 | 43 |
| Baubles and Accessories | categoryBaubles |
baubles |
5 | 25 |
| Ender Artefacts | categoryEnder |
ender |
5 | 21 |
| Alfhomancy | categoryAlfhomancy |
alfhomancy |
5 | 14 |
| Miscellaneous | categoryMisc |
misc |
0 | 22 |
| 合计 | — | — | — | 225 |
注册键与显示名来源:LibLexicon.java 的 CATEGORY_* 常量 + en_US.lang 的 botania.category.* 键。优先级来源:LexiconData.java:299-310 的第二个构造参数。
条目数统计方法与交叉验证:对 LexiconData.java 中 227 个 public static LexiconEntry 字段,逐个提取其赋值语句中的 categoryXXX,得 225 条有分类;剩余 2 个字段 welcome 与 tutorial 属于开篇引导(welcome = ...、tutorial = new TLexiconEntry(),LexiconData.java:327),无分类。225 + 2 = 227,与字段总数一致。
条目赋值无遗漏
LexiconData.java 中共 225 处 new *LexiconEntry( 直接实例化,另有 2 处为三元条件赋值:
orechid = Botania.gardenOfGlassLoaded ? new BLexiconEntry(...) : new ALexiconEntry(...); // :565-567
cocoon = Botania.gardenOfGlassLoaded ? new BLexiconEntry(...) : new BLexiconEntry(...); // :842-844
即 227 个字段全部有实际赋值,无声明未赋值的死字段。
交互
| 触发 | 行为 |
|---|---|
| 右键 | 打开 Lexica Botania GUI |
| 翻页 | 每个条目含 1–多个 Page |
| 解锁 | 知识类型决定解锁方式(elvenKnowledge、遗物成就绑定等) |
| 快速查询 | 物品栏内按 Ctrl(可改为 Shift)查条目,受 quickLookup.useShift 控制(ConfigHandler.java:198) |
| 渲染 | lexicon.render.3D 控制 3D 动画(ConfigHandler.java:165);lexicon.enable.rotatingItems 控制条目中的旋转物品(:150);lexicon.enable.justifiedText 控制文本两端对齐(:153) |
| 分类按钮着色器 | 使用 shaders.secondaryUnit 指定的 GL 纹理单元,默认 7(ConfigHandler.java:228) |
彩蛋名称
lang 文件中 Lexica Botania 有两个恶搞名称(en_US.lang):
item.botania:lexicon.bevo=Lexica Botanaitem.botania:lexicon.saice=Lexica Botonia
合成配方
无法核实 —— 本次核查未读取 ModCraftingRecipes 中 lexicon 对应的配方行,不做推断。