MCphone NeoForge 1.21.1 v1.9.1
MCphone v1.9.1
设置里那四个页面终于能滚了 —— 在此之前,超出一屏的内容不是"待会儿再看",是永远看不到。
运行环境: Minecraft 1.21.1 · NeoForge 21.1.200 或更高 · 客户端与服务端都需安装
可选: Curios —— 装了多一个手机槽
可选: Waystones(传送石碑)—— 装了多一个「传送石」App
可选: MCEF —— 装了多一个「浏览器」App
可选: NetMusic(网络音乐机)—— 装了唱片仓还收它刻的 CD
可选: Patchouli(教程手册)—— 装了多一个「阅读」App
可选: FTB Quests —— 装了多一个「任务书」App
可选: Integrated Dynamics —— 装了不多任何东西,只让崩溃报告指认对人
从 1.9.0 升级: 直接替换 jar。这一版只改了客户端画界面的部分,没动网络包,也没动任何存储格式——存档、好友、聊天记录(含图片)、购买记录、App 安装状态、主屏图标位置、手机里的唱片全部原样保留。
服务端可以晚一步换。 网络包的注册版本仍是 1,包的种类也一个没变,所以客户端 1.9.1 连 1.9.0 的服务端照常能用。当然两边一致最省心。
🖱 病根:那四页压根没有"滚动"这个概念
不是滚轮没接上。feature/settings/ 下的页面里一个 scrollOffset 字段都没有,溢出的处理清一色是同一句:
if (y + rowH > bottom) break; // 画不下就不画,也没有别的路能看到手机屏幕的内容区只有 120×176,一屏放得下八行左右。于是:
| 页面 | 原来的上限 | 你因此看不到什么 |
|---|---|---|
| App 管理器 | 8 行 | 纯本体就注册 11 个 App,默认安装下就有 3 个 App 在管理器里根本不存在。这一页还是 1.9.0 刚重做的 |
| 更换壁纸 | 2 行 × 2 列 = 4 张 | 第 5 张起看不见。而那个目录正是你自己往里丢图的地方,丢满是迟早的事——你只会以为那张图没被认出来 |
| 关于 | 画到底补个 … |
联动模组列表被截断。这一页存在的理由就是回答"我怎么没有这个功能",答案恰好被截在 … 后面 |
| App 详情 | 静默丢行 | 描述是附属自己写的、长度不由我们定;放不下时前置/联动那几行直接不画,你看不到自己缺的是哪个前置 |
壁纸页的注释里其实早写着「这一页的网格没有翻页,放不下的壁纸就是永远看不见」——当时拿它当论据去论证「打开文件夹」为什么要挤在标题行里,等于把 bug 写成了设计理由。那段注释一并改了。
🔧 怎么修的
没有发明第三套滚动。 项目里本来就有两套,照抄:
- 等高列表用行索引(
NotesList那套):App 管理器、壁纸网格(按行滚) - 长短不一的内容流用像素 +
enableScissor(ChatConversation那套):关于、App 详情
两套都把"一屏放得下几行"留到渲染时才算,再夹紧 offset——删一张壁纸、卸一个 App 之后列表会变短,不夹就会停在一片空白上。
关于页因此从静态类改成了实例(滚动是状态)。App 详情页的头部与卸载键不跟着滚:那个键得一直够得着。
两页没动:设置列表(5 项)和字体颜色(6 个预设)目前放得下十行,加了也是 maxScroll 恒为 0。等哪天加到溢出,按同一套补上即可。