飘字(SplashText)
基本信息
| 属性 | 值 |
|---|---|
| 源码类 | lumien.custommainmenu.configuration.elements.SplashText(继承 Element) |
| 配置位置 | 顶层 other → splash-text(注意是连字符,GuiConfig.java:116) |
| 绘制入口 | GuiCustom.drawScreen,在图片之后、文本与按钮之前(GuiCustom.java:256-271) |
| 默认文本源 | minecraft:texts/splashes.txt(SplashText.java:18) |
可配置项
| 字段 | 必填 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
posX / posY |
是 | int | — | 相对锚点偏移 |
color |
否 | int | -256(0xFFFFFF00,原版黄) |
文字颜色 |
alignment |
否 | 字符串 | top_center |
锚点 |
texts |
二选一 | 文本/数组 | minecraft:texts/splashes.txt |
候选文本,每次进界面随机抽一行 |
file |
二选一 | 文本 | — | 从资源文件读候选文本 |
synced |
否 | bool | false |
与主菜单共用同一条飘字 |
⚠️ posX/posY 是无判空硬读(GuiConfig.java:121-122 等四处分支都直接 get),缺失即崩。color 与 alignment 各有 4 种组合分支(GuiConfig.java:118-142),任一存在即可。
随机抽取机制
GuiCustom.loadSplashTexts 把 texts 解析结果按 \n 拆行,再用 rand.nextInt 抽一行(GuiCustom.java:86-92)。rand 是 GuiCustom 构造时新建的 Random(GuiCustom.java:72),所以每次打开界面(initGui 首次)抽一次并缓存(loadedSplashText 标志,GuiCustom.java:95-102),同一屏内不会变。
synced: true 时直接取主菜单界面的 splashText 字符串(GuiCustom.java:96-97),不自己抽。
动画
绘制时固定绕 Z 轴 -20°,并按 |sin(系统时间)| 做 ±0.1 的呼吸缩放,再用 100 / (文本宽 + 32) 自适应放大(GuiCustom.java:263-268)。
硬编码节日覆盖
GuiCustom.initGui 有一组无法通过配置关闭的日期特判,会直接覆写刚抽好的飘字(GuiCustom.java:108-120):
| 日期 | 文本 |
|---|---|
| 11 月 9 日 | Happy birthday, ez! |
| 6 月 1 日 | Happy birthday, Notch! |
| 12 月 24 日 | Merry X-mas! |
| 1 月 1 日 | Happy new year! |
| 10 月 31 日 | OOoooOOOoooo! Spooky! |
判断用 Calendar.get(MONTH)+1 与 Calendar.get(DATE),按本机时区生效。详见节日飘字硬编码。