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 Botana
  • item.botania:lexicon.saice=Lexica Botonia

合成配方

无法核实 —— 本次核查未读取 ModCraftingRecipes 中 lexicon 对应的配方行,不做推断。

相关条目