MCphone v1.10.0
这一版有两件大的。
一、手机上多了一格「终端」—— 点一下,你自己的存储终端就开出来。 Applied Energistics 2、Refined Storage、Tom's Simple Storage 三家都认,装了哪家就支持哪家,一家都没装的话这一格根本不会出现。手机里还多了个终端卡槽:装一台进去,以后点它就固定开这一台。
二、手机放进副手就挂到画面上。 一直亮着,停在哪一页就显示哪一页;按 Alt 唤出鼠标直接操作它,位置和大小自己摆。
运行环境: Minecraft 1.21.1 · NeoForge 21.1.200 或更高 · 客户端与服务端都需安装
可选: Curios —— 装了多一个手机槽
可选: Waystones(传送石碑)—— 装了多一个「传送石」App
可选: MCEF —— 装了多一个「浏览器」App
可选: NetMusic(网络音乐机)—— 装了唱片仓还收它刻的 CD
可选: Patchouli(教程手册)—— 装了多一个「阅读」App
可选: FTB Quests —— 装了多一个「任务书」App
可选: Applied Energistics 2 / Refined Storage / Tom's Simple Storage —— 装了任意一家就多一个「终端」App
可选: Integrated Dynamics —— 装了不多任何东西,只让崩溃报告指认对人
从 1.9.x 升级: 直接替换 jar。存储格式没动——存档、好友、聊天记录、购买记录、App 安装状态、主屏图标位置、手机里的唱片全部原样保留。手机终端卡槽是这一版新加的玩家附件,老存档里它是空的,不需要任何迁移。
⚠ 服务端必须一起换。 这一版新增了一个网络包类型(「终端」那一格要用),而网络包的注册两端必须对称——1.10.0 的客户端进不去 1.9.x 的服务端,反过来也一样。这一条和 1.9.3 不同,那一版是纯客户端改动。
跳过了 1.9.4。 那个版本号做完了但一直没发,它的两件东西都在这一版里,见下面最后一节。
🖥 终端
主屏上多的这一格,干的就是一件事:把你自己那台终端打开。
| 装了哪家 | 认得的东西 |
|---|---|
| Applied Energistics 2 | 无线终端、无线合成终端、无线样板访问终端 |
| ├ 加装 AE2WTLib(AE2 无线终端) | 它那些终端也全认,包括通用终端 |
| Refined Storage 2 | 无线网格、无线自动合成监视器、便携网格 |
| Tom's Simple Storage | 高级无线终端 |
三家有一家就够。 一家都没装时这一格不上主屏、也不进应用商店——不会让你点到一个没反应的图标。装了哪几家,App 详情页的简介末尾会写出来。
免费。 末影箱那一格卖一个末影箱、传送石那一格卖一个传送石,因为 App 本身就是那件实物的替代品;这一格替代不了什么——它开的是你自己那台终端,没有终端它一格内容都没有。真正的门槛是那台终端,再收一次等于收两遍。
终端卡槽
点开「终端」:卡槽里装了终端就开那一台,卡槽空着就把卡槽界面摆到你面前——格子和背包挨着,拖进去就装好了。按住 Shift 点图标一律开卡槽(想换一台或者取出来走这条)。
它解决的是"身上带着好几台,到底开哪一台":答案从"背包顺序里第一台"变成**"你自己选的那一台"**。
卡槽是加成,不是替代。 终端可以一直留在背包里,卡槽那一页上的「打开终端」照样开得了它。这一条是刻意的:终端一旦被收进手机就不在背包里了,各家自己的快捷键(AE2WTLib 的补货/磁铁/收纳、RS 的打开无线网格)就找不到它——想用那些快捷键的人不装卡槽就是了,代价只是点开之后多按一下。
卡槽里的终端死了不掉,和壁纸、笔记、唱片仓里的唱片一样跟着你走。
范围、耗电、界面,一条都不是我们定的
这一格只做一件事:挑出你要开的那一台,然后按它自己的方式打开。所以:
- 你在 AE2 / RS / Tom's 里的进度,自动就是你在这一格里的进度——插了增幅卡、绑了哪个网络、跨不跨维度,全按对方的规则来
- 开不了的时候说话的也是它们(AE2 的
Device is not linked.、Tom's 的"终端不可达"之类),我们不在前面加自己的检查。加了的话两套规则迟早对不上,而对不上的表现是"手机上说不行、手里拿着又能开"
⚠ Tom's 的基础无线终端开不了,这不是 bug
那把终端的设计就是"瞄准范围内的终端方块右键",它压根没有"隔空打开"这回事(open() 的方法体是一句 return)。从手机上点它,字节码层面就是什么都不会发生。
所以这一版把它挡在外面:放不进卡槽,背包里带着它点「终端」会跳过并告诉你原因——比点了没反应强。要隔空开,用高级无线终端。
📱 副手 HUD:手机挂在画面上
手机拿在副手里就自动挂到 HUD 上,一直亮着,停在哪一页就显示哪一页——边走边看聊天、边挖矿边看任务书,不用一次次开机。
按 Alt 唤出鼠标就能直接操作它:翻页、点 App、在输入框里打字都行。按住的这段时间人走不动(原版界面一开就不吃移动键),松开回到走路。
挂着的和 Alt 里的是同一部手机,不是两块屏:你在 Alt 里翻到第三页,松手之后 HUD 上还是第三页。
手机挂在 Curios 饰品栏里时副手是空的,那种情况另给一个 G 键手动叫出来。两个键都能在「选项 → 按键设置 → MCphone」里改。
位置和大小自己摆。「设置 → 副手 HUD」里可以开关、调大小与位置;也能就地摆——拖边框或状态栏挪位置,滚轮缩放。
F1 藏 HUD 的时候它也跟着藏。
开关、大小、位置都是客户端设置,存在 config/mcphone-client.toml 里,跟着这台电脑走。
原本要发在 1.9.4 的两件
界面大小那两个加减键的符号对齐了。 原来画的是 −(U+2212)和 +(ASCII)两个字符,各自在行高里的落点根本不是一回事:横着差一两像素,竖着差一整档,两个键并排摆着一眼就看得出来。改成画出来的两根杠,两个键的横杠现在逐像素相同,加号只是多一根竖的。顺带也不再受字体和资源包影响。
给附属作者堵了"踩裁剪"那个坑的三条路。 附属在自己的页面里调 graphics().enableScissor 而不是本体给的 PhoneCanvas.clipped,只在界面倍数不是 100% 时才现形——附属作者在 100% 下怎么测都是好的,玩家却怪到附属头上。这一版:警告从 clipped 挪到了 graphics() 的文档上(该被提醒的正是只用 graphics() 的那个人)、AddonApiExamples 补了一个用 clipped 写的可滚动列表例子、本体在附属页面画完之后自检裁剪栈,脏了替它收掉并留一条日志(附属开了裁剪没关的话,这一帧之后整个游戏界面都会被切在它那个框里,而 GL 的 scissor 是跨帧的)。
给开发者
「终端」那三家的接入写在 docs/terminal-integration.md:查实过的 API 入口表(全是 javap 出来的,不是抄文档)、每一家那条"错了不报错"的坑、许可表、测试清单,以及想再加一家要做什么。加一家的代价是 feature/terminal/integration/ 下一个包加一行 isLoaded。
这一格原来是个独立附属(november521/mcphone-terminal,只发过 v0.3.0),这一版并了进来。理由:本体自己早就在做同一件事——传送石靠 Waystones、任务书靠 FTB Quests、阅读靠 Patchouli、浏览器靠 MCEF,"装了 X 就多一格"在这个仓库里的既定形态就是内建 App 加可选依赖。那个仓库已归档,v0.3.0 的 Release 留着不删。