飘字(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),按本机时区生效。详见节日飘字硬编码。

相关条目