GUI 缩放 (GuiScale)
Advanced Memory Card GUI 中每行 P2P 列表项的尺寸档位。 定义:
com.projecturanus.betterp2p.client.gui.widget.GuiScale
基本信息
| 属性 | 值 |
|---|---|
| 枚举类 | GuiScale |
| 持久化 | NBT gui byte 字段(默认 DYNAMIC.ordinal) |
| 切换方式 | GUI 内按钮循环切换,写回 MemoryInfo.guiScale,下次打开沿用 |
档位差异
| 档位 | ordinal | 行高(像素) | 最小高度要求 | unlocalizedName |
|---|---|---|---|---|
SMALL |
0 | 4 | 0 | gui.advanced_memory_card.gui_scale.small |
NORMAL |
1 | 6 | 326 | gui.advanced_memory_card.gui_scale.normal |
LARGE |
2 | 8 | 409 | gui.advanced_memory_card.gui_scale.large |
DYNAMIC |
3 | availableHeight / P2PEntryConstants.HEIGHT |
0 | gui.advanced_memory_card.gui_scale.dynamic |
核心差异详解
SMALL / NORMAL / LARGE
固定行高(4 / 6 / 8 像素),与窗口可用高度无关,但分别对应最小窗口高度 0 / 326 / 409 像素。
当窗口高度低于对应
minHeight时,按钮可能不可见或被裁切。
DYNAMIC(默认)
核心差异:行高根据 GUI 当前可用高度自适应,公式:
行高 = availableHeight / P2PEntryConstants.HEIGHT
P2PEntryConstants.HEIGHT 在 Widget.kt 中定义为单行 P2P 项的基准高度。结果会向下取整为整数像素。
实现要点
- 实际行高通过
GuiScale.size(availableHeight)lambda 计算:固定档返回常量;DYNAMIC 档执行除法。 minHeight用于 GUI 初始化时设置最小窗口高度,避免窗口过小导致按钮互相重叠。
相关条目
- 高级存储卡 - NBT 字段
gui存储档位