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