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 初始化时设置最小窗口高度,避免窗口过小导致按钮互相重叠。

相关条目