ResearchBrowser 模块

基本信息

net.glease.tc4tweak.modules.researchBrowser —— 重写 Thaumcraft 研究浏览器 GUI 的翻页、边框与完成度计数。共 6 个源文件(含 package-info.java)。

类清单

类 可见性 职责
BrowserPaging public class 标签页翻页
DrawResearchBrowserBorders public class 边框绘制
DrawResearchCompletionCounter public class 研究完成计数
ThaumonomiconIndexSearcher public class 魔道书索引搜索
Utils 包私有 class 共享反射字段
package-info.java — 包说明

关键常量

常量 值 出处
BUTTON_HEIGHT 8 BrowserPaging:30
BUTTON_WIDTH 24 BrowserPaging:31
BORDER_HEIGHT 17 DrawResearchBrowserBorders:10
BORDER_WIDTH 16 同上
TEXTURE_WIDTH 256 同上
TEXTURE_HEIGHT 230 同上

⚠️ TEXTURE_HEIGHT = 230 与配置字段 browserHeight 的声明初值 230 一致 (见 Configuration Handler); browserWidth = 256 与 TEXTURE_WIDTH = 256 同理。 二者数值吻合,但一个是常量、一个是配置默认值,改动时需同步。

BrowserPaging

成员 行 说明
static Field fieldPlayer 32 ReflectionHelper.findField(GuiResearchBrowser.class, "player")
getTabPerSide() 39 每页标签数
getTabsOnCurrentPage(String player) 61 返回 LinkedHashMap<String, ResearchCategoryList>

返回 LinkedHashMap 而非 HashMap —— 依赖插入顺序保持标签排列。

ThaumonomiconIndexSearcher

类注释:Credit to BluSunrize for originally creating this class.(致谢原作者)。 onGuiInit(GuiScreenEvent.InitGuiEvent.Post)(131 行)挂钩搜索。 init() 里反射取 Mouse.readBuffer。

DrawResearchCompletionCounter

成员 行 说明
static init() 26 注册监听
enum EventHandler 87 内部枚举,onPostGuiDraw(GuiScreenEvent.DrawScreenEvent.Post)

样式由配置 completionCounterStyle(默认 CompletionCounterStyle.Current)控制。

ASM 侧接线

目标类 Visitor 侧
thaumcraft.client.gui.GuiResearchBrowser GuiResearchBrowserVisitor CLIENT
thaumcraft.client.gui.GuiResearchRecipe GuiResearchRecipeVisitor CLIENT
thaumcraft.client.gui.GuiResearchTable AddHandleMouseInputVisitor CLIENT
thaumcraft.client.gui.MappingThread MappingThreadVisitor CLIENT

见 TC4 Transformer。

相关配置

键 分组
browserScale client.browser_scale: scale
infer / maximum / minimum / considerSearchArea client.browser_scale
addResearchSearch client
limitBookSearchToCategory client
addClearButton client
completionCounterStyle client

相关条目

源码

  • src/main/java/net/glease/tc4tweak/modules/researchBrowser/BrowserPaging.java
  • src/main/java/net/glease/tc4tweak/modules/researchBrowser/DrawResearchBrowserBorders.java
  • src/main/java/net/glease/tc4tweak/modules/researchBrowser/DrawResearchCompletionCounter.java
  • src/main/java/net/glease/tc4tweak/modules/researchBrowser/ThaumonomiconIndexSearcher.java
  • src/main/java/net/glease/tc4tweak/modules/researchBrowser/Utils.java