Gui Natures Compass
基本信息
| 属性 | 值 |
|---|---|
| 类 | com.chaosthedude.naturescompass.gui.GuiNaturesCompass |
| 注册方 | GuiHandler.getClientGuiElement()(GUI ID 0) |
| 仅客户端 | @SideOnly(Side.CLIENT) |
行为
手持 Nature’s Compass 右键打开的主界面。包含 6 个按钮、1 个 checkBox、1 个搜索框、1 个群系列表(GuiListBiomes)。
按钮
| ID | 显示 | 默认位置 | 默认启用 | 触发动作 |
|---|---|---|---|---|
| 0 | Cancel |
(10, height-30) | 是 | 关闭 GUI |
| 1 | Sort By: <维度> |
(10, 90) | 是 | 切换 sortingCategory.next() |
| 2 | Info |
(10, 65) | 否(选中列表项后启用) | 弹出 GuiBiomeInfo |
| 3 | Search |
(10, 40) | 否(选中列表项后启用) | 触发 searchForBiome(biomeID) 发 PacketCompassSearch |
| 4 | Teleport |
(10, height-55) | 仅 FOUND 状态且 OP/cheat 模式 | 发 PacketTeleport |
| 5 | Found Only (CheckBox) |
(10, 115) | 默认 false | 切到 availableBiomes 过滤列表 |
搜索框
- 位置
(130, 10),宽width - 200,高 20。 - 接收单行文本,支持
category: value形式的 AND 过滤(:前后都 trim)。 - 单段输入会同时匹配当前
sortingCategory显示名(除CategoryName外)。 - 已识别的搜索分类:
name/climate/bh/hv/rain/temp/humidity/tag(或对应 i18n 键)。 - 多段以逗号分隔;每段独立做交集 (
retainAll)。
列表
- 自定义
GuiListBiomes(继承GuiListExtended),slot 高 36。 - 渲染每条:[群系名] + [当前排序维度: 值] + [Precipitation: Rain/Snow/None]。
“Found Only” CheckBox 行为
- 勾选时
baseBiomeList = availableBiomes;取消恢复allowedBiomes。 - 在单机集成服务器下首次勾选会阻塞地跑 worker(
while (worker.hasWork()) worker.doWork()),已用注释明示属于极端 hack。
传送按钮
updateScreen()每 tick 检查:NaturesCompass.canTeleport || PlayerUtils.cheatModeEnabled(player)决定可见;natureCompass.getState(stack) == FOUND决定启用。
数值
| 数值 | 默认值 |
|---|---|
| Info/Search 按钮启用条件 | 选中群系列表项 |
| Teleport 按钮可见条件 | NaturesCompass.canTeleport 或 cheat mode |
| Teleport 按钮启用条件 | compass 状态 FOUND |
| 默认排序 | CategoryName |
限制
- 一次只能选一个群系。
- 搜索按 i18n 字符串匹配,非英文语言下输入不同关键词。
相关条目
- GuiBiomeInfo - Info 按钮弹出
- GuiListBiomes - 列表实现
- Sort Categories
- Nature’s Compass