更新日期:2026-10-26,Asia/Hong_Kong。
本页区分历史实测与当前源码验证。早期界面截图已从正文移除,避免误认成当前外观;本轮NeoForge联机界面截图已补录至截图说明。最新变更和待复测项目见文末。
- Minecraft 1.21.1,Java 21;NeoForge 21.1.249;Fabric Loader 0.16.14/Fabric API 0.116.17。
- 两个 Modrinth MTR 4.1.0-beta.2 发布包已按官方元数据核对 SHA512;元数据和 JAR 位于项目
.cache/downloads。 - 可选 Overlay 兼容测试使用 GitHub v1.5.2 的 NeoForge 1.21.1 正式附件,并核对发布的 SHA256SUMS。
当前两个目标 MTR Core 的回归均通过:NeoForge 96 项通过、1 项跳过;Fabric Core 95 项通过、2 项跳过。覆盖直达、换乘余量、单向线路、重复停站、同名站、显式连接、贯通、排序、范围限制、时钟过期、车辆身份、地图区间、分块组装、原生请求生命周期,以及 HUD 缩放/位置、无班次线路参考、滚动条拖动计算、到发线路分组、完整站点目录搜索、班次提醒、后台轮询公平调度、起点定位、五种走法、人工步行、共享审核、持久化恢复和独立步行分块。最新验证范围及未完成项目见文末。
到发适配测试直接调用两个目标包的 Siding.iterateArrivals,未用模拟接口替代其签名;原生地图兼容测试使用实际 StationAndRoutes/Departures DTO 的正式 JSON 序列化。另有一项读取真实 Overlay 发布包的全网快照测试。
显式测试世界生成器默认跳过;仅 -PgenerateFixture 时向指定的新目录生成 MTR 运营网络,拒绝覆盖已有目标。
项目内新建 NavTest 测试世界,MTR 原生生成车辆段路径成功。玩家出生在约 (2000, 2000),线路站台位于约 (40, 0)、(230, 80)、(430, 0),不在玩家附近同步范围。
使用 -PnativeSmoke 强制关闭客户端对 Navigation 专用通道的使用,验证以下路径:
- MTR 原生游戏网络转发返回全网三站、三线路,及运营线路的发车数据。
- 中文完整站名“滨海北”“甘地”自动匹配,按回车得到三个候选方案,倒计时继续更新。
- 车站到发页显示站台、目的地、到达和发车倒计时及计划/实时状态。
- 开始导航后关闭窗口,HUD 继续显示,兼容路径明确要求手动推进。
- 窄窗口采用紧凑候选布局,文本清晰,不再被第二次背景模糊。
以上是早期版本验证过的能力,不作为本轮黄铜界面与 HUD 编辑器的视觉验收。
在用户指定的 D:\Axolotl\profiles\1.21.1-NeoForge 21.1.251 实例运行,NeoForge 21.1.251。服务端有 MTR 和 MTR Map Overlay,没有 Navigation。
- 实际加载的是服务器整合包的 MTR 4.1.0-beta.2 performance-v6 和 Overlay 1.5.2;Overlay 日志确认收到 72 条线路、5158 条轨道和 651 个地标。
- 实测“戴安澜 → 北野”返回三个可选方案,包含实际站台、方向和到发倒计时。
- “戴安澜”车站到发返回多个线路和站台的倒计时,保留原生实时预测标识。
- 启动器固定最大内存 12288 MB、关闭自动分配;实际 JVM 的 MaxHeapSize 为 12884901888 字节(12 GiB)。
- 每次替换前正常关闭客户端,旧 Navigation JAR 移入项目
.cache/profile-backups,校验新文件 SHA256 并确认 mods 中只有一个 Navigation。
查询界面改为原生平面按钮、按需展开站点候选、可直接点选的方案卡片和线路颜色时间轴;小窗口查到结果后自动收起搜索区。当前导航独立显示阶段相关操作,HUD 在右上角显示下一操作、站台、倒计时和实际绑定的打开按键。
旧兼容版在成功返回方案后仍出现连接超时,用户提供的日志有三次超时记录,用户确认仅该客户端受影响。日志没有直接指向 Navigation 的崩溃堆栈,不能将时刻服务无响应直接当作掉线根因。
针对确认存在的性能及请求生命周期问题:时刻与目录解析移至后台;原生请求同一时间最多一个;全网时刻每三秒取一次,与 MTR 原生三秒缓存匹配;失败后停止自动轮询,至少十五秒后由用户显式重试;没有打开导航或活动行程时不请求;移除导航触发 Overlay 全量同步的逻辑。新查询取消旧任务,搜索有五秒时间、两百万操作和一万待处理标签的限制。出现超过五秒的客户端 tick 间隔时写诊断日志。
兼容路径依赖 MTR 原生系统地图服务可用;地图时刻数据不暴露车辆实例及完整班次身份,故不自动确认乘车进度,也不将其路线估算标成实时预测。
当前实测不是大型真实网络的性能成绩;不宣称预知信号拥堵、临时人工驾驶或未来取消。没有进行地图区间高亮或更改 Overlay 的现有渲染。
Fabric 安装包构建及目标 MTR Core 回归通过。早期 Fabric 游戏启动停留在资源加载阶段,尚未完成其世界内界面验证;本轮独立专服协议验证见文末,不能代替完整游戏客户端实测。
用户随后反馈 HUD 太大,以及站名正确仍提示通用查询失败。按用户请求,提供三种可交互外观演示,见 ../ui-preview/index.html,包含两行/三行小 HUD 和旧版占用范围对比;演示按钮与键盘操作共 12 项检查通过。
当时修改并构建的内容:HUD 收缩为三行、物理尺寸约 270×65 像素并脱离 GUI 缩放;目录更新保留已选行程的站台显示名;查询触及备选搜索上限时保留已找到结果,区分资源上限、站点目录变化和其他异常,并写明诊断原因;减少失效搜索标签和重复字符串处理。新增两个回归覆盖站台别名保留,以及寻找备选超限时保留已找到方案。
早期连接保护包 SHA256 为 A5954E6014CADA78A97AD98FA43B00A897A5DFAC4721F64CC3202B132631DC0F,已被后续版本替换。用户随后选择 A 布局,已移植到原生界面,保留独立车站到发页。
截至后续日志观察,该次真实服务器连接没有再记录之前的连接超时;这属于短期复测,不构成掉线根因已被证明的结论。
用户自行启动客户端检查,提供了重复 HUD 入口、底部编辑面板遮挡以及真实网络触及搜索上限的截图。16:27~16:28 的客户端日志明确记录约 45,660 条事件的查询触及资源上限;这是搜索没有完成,不能据此判断站名错误或线路停运。
本轮源码包含以下修订:
- 仅保留全局顶部 HUD 设置入口。三行 HUD 默认 150%,大窗口约 405×97 实际像素,可在 75%~200% 调节,默认自动限制小窗口占用。位置按可用区域比例保存。
- 拖动 HUD 时隐藏设置面板,HUD 移到底部后面板转移到顶部,底部区域也可放置。四角预设、恢复默认及当前行程预览保留。
- 原版石质按钮配黄铜包角、铆钉和轨道刻度,使用用户指定的图标及中文名“MTR:站间物语”;无机械动力运行依赖。
- 站名候选不再截断为前三项;可在候选框内滚动全部匹配,滚动条与提示显示位置。滚轮优先处理候选列表,再处理行程内容。
- 搜索使用反向可达性、最短运行时间和最低换乘次数估计指导扩展,结合换乘余量,减少无关中间站和后续班次的扩展。保留原有时间、操作数、队列和取消限制;存在贯通班次时对换乘下界采用保守策略。
- 无可乘方案时显示有向拓扑线路参考,保留原生站台和重复停靠序号;区分无班次、超过换乘上限和计算未完成,不编造时刻、不标为已确认停运,也不允许开始班次导航或向地图接口发布参考路线。
- 新增 Overlay 对接指南,说明 API、事件、身份规范、精确区间及联调边界。
大网络回归使用 46,200 条事件、两条高频线路和一次换乘,要求“最快到达”“少换乘”均返回到达远端站的两段方案;两种排序合计执行约 1.1 秒(本机一次测量,不是实际服务器性能保证)。新增线路参考测试覆盖无班次、八次换乘远途、单向、同名、未连接邻站、显式连接和重复停靠。
两个加载器均构建通过,测试数量见上文。新的 HUD 拖动避让、候选框滚动和黄铜外观已完成编译核验,尚待用户在实际游戏中复查;本轮不接管或重启用户客户端。Fabric 世界内和两个加载器独立专服的完整实测仍未完成。
用户截图对应的上一安装包 SHA256 为 D5DABDB73D3034A3B195DB3F4147090C6F20AF501C56DC6DCBF944CDF656DC58。
17:11 确认客户端已经退出后,已将本轮 NeoForge 修复包安装到用户指定实例:旧包备份于项目 .cache/profile-backups/20261025-171125,确认 mods 中 Navigation 只有一份,安装文件与构建产物 SHA256 均为 FF72E7BC452636D2EE4D18F325E10C29B09E732309F9EB6EE407AB574C530DA6。没有启动客户端;新版实机复查由用户进行。本轮两个加载器的构建产物分别位于项目 build/libs 与 fabric/build/libs。
根据用户新截图,候选列表底部增加展开/收起按钮和当前范围计数。默认显示三项,展开时按窗口可用空间最多显示八项,其余仍可滚动。候选弹层优先接收滚轮和点击,并遮挡底层方案的鼠标提示。
候选列表、行程详情及到发页的滚动条补齐滑块拖动与点击轨道定位,扩大点击范围。新增几何回归覆盖 651 个候选拖到首末位置、不同内容高度、展开列表和内容完全容纳时的边界。
起点、终点和到发站输入框右侧增加清空按钮。修改起终点会清除旧方案并取消旧查询,避免迟到响应回填;已有活动导航保留。清空到发站会停止其订阅。
到发页按线路名称及颜色分组,同组保留各个原生线路 ID、方向、站台和停靠出现位置。点标题展开/收起该线路当前收到的全部班次,按发车时间排序,每秒刷新保留展开状态,无班次线路仍可显示。请求从每站台三班/总计六十班扩大为每站台 32 班/每车站 512 班;服务端可用数据仍可能少于此数量,不代表全天时刻表。分组仅在目录或到发数据变化时重建,只绘制视口内的班次行。
新增分组回归覆盖不同方向合并、二十班完整保留、实时/计划状态、重复站台停靠、空线路和刷新后分组身份。两个加载器构建通过,两个目标 MTR Core 测试均通过,数量见上文;本轮新增鼠标交互仍待用户自行实机复查,未补充新版游戏截图。
18:05 确认客户端已关闭后,将包含清空后保持输入焦点修正的最终包安装到指定 NeoForge 实例,旧包备份于 .cache/profile-backups/20261025-180509,确认 Navigation 仅一份。安装包及项目构建包 SHA256 均为 80659A4694C12BC747E5D6889B699178FD8116CBAA0E2AE6AA863119A2570B17;未启动客户端。
用户反馈展开候选列表遮挡过多,随后明确要求单独按钮查看全部车站。本轮已移除主界面中的候选下拉及展开控件,改为查询页和到发页的“全部车站”按钮。点击进入独立原生页面,搜索为空时显示当前维度目录的全部车站,列表不设三项或八项的截断。
目录页支持中英文搜索、坐标区分同名站、滚轮与可拖动滚动条、上下键选择;选择后可明确设为起点、终点或查看到发,双击或回车使用突出显示的默认用途。Esc 或右上角关闭按钮返回原界面,不取消活动导航。清空按钮保持输入焦点,目录变化时重新过滤,确认选择前核对当前维度和站点身份。
新增三个回归覆盖 651 站完整目录、不区分英文大小写的搜索、同名不同 ID/坐标保留、空目录和无匹配结果。原滚动条与班次分组回归继续保留。两个加载器构建及目标 MTR Core 回归通过;原生页面返回、键盘、中文输入与视觉效果仍待用户实机复查,本轮未接管客户端或增加新版实机截图。
20:09 确认游戏已关闭后安装到指定 NeoForge 实例,旧包备份于 .cache/profile-backups/20261025-200903,确认 mods 中 Navigation 仅一份。安装文件及构建产物 SHA256 均为 9453BA3BC1EC8046E7FB6C9A3A97A116A6BBE98630633619045A9677862176D2;未启动客户端。
到发列表的单个班次可点击,进入提醒设置,默认提前九分钟,可调节为 1~60 分钟。仅有一个活动提醒,替换其他班次时按钮明确写为替换;取消提醒与取消导航互相独立。普通行程 HUD 保留,另有顶部中央的紧凑通知条,设置和触发时展开约六秒后收起,触发播放一次本地提示音。
关闭窗口后继续订阅所选车站。没有导航行程时,打开键优先进入提醒管理;各页顶部“提醒”也可打开。提醒时间以所选车站的到达时间为准,设置时已处于提前窗口会在数据确认后立即触发。发车时间已过不再显示可靠的到站倒计时,但不会断言玩家没有上车或列车实际离站;数据过旧或班次不能确认时显示“班次待确认”。最后已知发车时间过去十分钟后过期,断线/切服/切维度清除。
核验两个目标 MTR JAR 的 ArrivalResponseSchema:公开到发包含线路、站台、方向、departureIndex、到发时间、deviation、realtime,未提供完整 siding/循环/车辆身份。另核验目标 Siding.getArrivals 的字节码:序列化到发时间已加 deviation,不再重复叠加。原生提醒仅跟踪时间条目,以线路/站台/方向/departureIndex 和扣除偏差后的精确计划到发时间组成指纹;重复指纹拒绝确认,不将其宣称为实际车辆身份。专用通道则保留完整 RunKey 和停靠序号。
新的采样时间必须递增;旧响应、旧服务器采样和超过五秒未更新的数据不能使提醒重新变为新鲜。延误时跟随同一条记录,提醒触发后不因再次进入阈值而重复触发,不自动替换为后续班次。
同站提醒与到发页复用请求,不同站分开订阅。原生请求仍串行并保持最小间隔,已到期的全网时刻、可见到发和提醒订阅按最久未请求顺序调度,避免慢响应使提醒饥饿;仅后台提醒不额外拉取全网时刻。专用通道复用原 poll 协议,按请求 ID 保存有界站点上下文,提醒和可见到发的响应分别归属,不改变地图选择协议。
新增九项提醒核心回归覆盖九分钟边界、一次性触发、立即提醒、发车后不触发、晚点只加一次、五秒过期、缺失及重复条目、不替换下一班、乱序/其他站/其他维度、完整班次与重复停靠身份,以及旧服务器数据。另有三项轮询调度回归,包括每次请求耗时 1.5 秒时仍在五秒内服务各数据源。
两个加载器构建及 Core 回归通过;新提醒设置页、实际提示音、通知条动画、同时导航与提醒的遮挡关系和后台真实服务器订阅仍待用户实机复查,未启动或接管用户客户端,未补充新实机截图。
21:13 确认游戏已关闭后,将提醒版安装到指定 NeoForge 实例。旧包备份于 .cache/profile-backups/20261025-211306,确认 Navigation 仅一份,安装包与构建包 SHA256 均为 ABD8C26C7E82F75885796148F050D992E2555097FF880877F3CF3F7657AC8F0E;没有启动客户端。
换乘查询增加准星图标“定位”按钮,窄窗口只绘制图标,保留完整按钮朗读名称和悬停说明。每次连接,首次进入查询且起点为空、未经用户编辑时自动尝试一次;目录尚未加载时等待,输入、交换、手动选站或清空起点后不再自动填回。
按当前维度玩家位置与车站坐标的水平直线距离排序。最近站在512格内,且第二近站远超过64格时自动填入;仅有一个有效候选时只检查512格。其他情况进入独立“附近车站”页面,显示站名、坐标、估算距离并要求确认。页面支持搜索、滚轮、拖动滚动条、上下键、双击和回车;距离基准固定,只有点击“重新定位”才重新采样。取消保留原起点。
原生地图解析新增内部坐标有效性集合,缺失 x/z 的条目不参与定位,真实原点坐标继续有效;Overlay 的已有地标坐标可用于定位。公开 JourneySelection、网络协议及服务端安装要求未变。定位只读取已有目录,不增加网络轮询。选择前再次验证连接、维度和站点身份,定位不自动查询或替换活动导航。
新增九项自动测试覆盖512格和64格边界、水平距离及负坐标、同名不同ID、等距稳定排序、真实原点与未知坐标、不同维度和无效玩家坐标、等待目录、编辑/清空后禁止自动填回、连接状态重置和目录更新。已完成两个加载器构建、两个目标 MTR Core 回归、中英文键集合与提示完整性检查、Git 空白检查。
尚未进行本轮游戏内视觉与操作验收:不同窗口及GUI缩放、中文输入、自动进入附近页、返回原查询页、真实切维度以及定位与活动导航并存需要用户实测。本轮没有启动或接管客户端,也未新增游戏截图。
08:53 确认客户端已退出后,已安装到指定 NeoForge 21.1.251 实例。旧包备份于项目 .cache/profile-backups/20261026-085326,确认 Navigation 只有一份,安装包与构建包 SHA256 均为 935CFC77088FB204CA1E8BA96131B72DAB2B1D216B0E592DCBEADE64CC75FCA4。Fabric 构建包 SHA256 为 035836F88ED2675DE26D14EFE1AA2CBC3AB2C9C4D9DA54D6DE8DF8477403BB75。未改变启动器的12GB设置。
本轮实现最多五种不同走法,按原生线路、站台、停靠出现序号与步行连接去重;同走法的后续班次不占名额。两种排序共用本次找到的最快到达基准与晚到窗口,默认30分钟,可改为15、60分钟或不限。预算维持五秒、两百万操作、十万展开和一万排队标签;已有可乘结果不会因寻找备选超限而丢失。约4.6万事件的大网回归继续保留,并覆盖两种排序的新查询选项。
查询列表可滚动、拖动滚动条及键盘选择;详情区分乘车、人工步行、换乘余量与额外候车。步行是有序行程步骤,HUD保留手动“已到达,继续”,不会仅凭距离自动推进。无班次线路参考支持显式步行,仍不能启动班次导航。班次提醒独立于行程。
新增独立“步行换乘”管理页面、个人连接、版本化JSON导入预览及分批导出、服务器共享、自己的建议、OP2审核、修改后另行批准、拒绝理由和当前维度回滚。共享高于个人、个人高于MTR估算;每层优先匹配站台。个人规则只有经该服务器范围授权才随v2查询发送,不进入共享库或审核日志;拒绝发送也可继续使用共享规则查询。
服务端以实际连接身份和即时OP2权限授权,异步准备完成后再次校验权限、修订及当前站点,原子写入成功才发布。提交严格限制为滚动一分钟两次,管理修改每分钟十次,短时重连不能重置限额。存储、容量、分块、JSON深度和超时均设界限。v1通道保持纯乘车结果,JourneySelection v1只输出乘车区间,步行不会伪装成轨道。
- NeoForge:89项测试,88通过、1跳过、0失败;Fabric目标MTR Core:89项测试,87通过、2跳过、0失败。两个发行JAR均构建成功。
- 新回归覆盖五种走法/同走法班次去重、晚到边界、较晚但可以贯通的班次保留、优先级与站台精度、首尾步行、禁止纯步行/串联站外步行、步行耗时及可配置余量只计一次、手动步行返回与班次刷新。
- 覆盖身份与权限拒绝、自己的建议可见性、审核修改与单独批准、旧修订、批准时站点失效、过期、重复提交、容量验证及严格限流;个人查询字段裁剪、包大小、深层JSON拒绝、分块冲突与过期、解压限制、快照原子替换和损坏库恢复。
- 覆盖包含步行的结果/行程状态序列化,以及旧v1缺少新增字段时的解码;仍保留两个目标MTR包及Overlay契约回归。
使用项目内三站MTR测试存档,测试专服仅绑定127.0.0.1:NeoForge 21.1.249使用25586,Fabric Loader 0.16.14使用25588。测试工具为 tools/walking_protocol_smoke.cjs,开发依赖仅在项目缓存。普通申请者、OP2管理员和旁观者共三个独立协议连接,实际完成游戏登录与模组载荷交换。
验证申请持久化为待审核而不公开、其他普通玩家不可读取待审内容或进入审核读取模式、无权限批准与撤回他人建议被拒、管理员批准后第二客户端实际收到新修订和内容、旧修订被拒、个人规则仅用于本人v2查询且没有写入共享库/审核日志、删除后第二客户端快照清除。两个加载器均另用仅声明v1通道的连接验证纯乘车查询。报告保存在项目 build/validation/walking-protocol-*.json 与 walking-legacy-*.json,不打包发布。
以上连接使用真实Minecraft游戏协议,但不是完整Minecraft渲染客户端,未操控用户客户端。不能据此将双完整客户端界面验收标记为通过。
单机及两个加载器的完整客户端页面、中文输入、不同窗口/GUI缩放、五项列表操作、HUD步行推进、切维度、断线、管理员权限在异步审核期间实际撤销、无Navigation服务端及旧Navigation服务端的整套游戏降级流程,均仍需真实游戏验收。尚未进行两个完整Minecraft客户端的专服联合验收。
“C2下车后步行换乘9号线”的实际两个原生端点与人工时间尚未由测试服目录确认;代码没有写死截图站名或猜测其通行时间。需要在用户服务器选取并人工核对。没有新增实机截图,也没有声称上述项目已完成。
16:06 确认用户客户端和两台隔离专服均已退出后,将本轮 NeoForge 新包安装到指定21.1.251实例,旧包备份至项目 .cache/profile-backups/20261026-160615。核对 Navigation 仅一份;NeoForge SHA256 为 D17648390D99EECF945782796407729DE06748E169615BB5EECA4B6947A76DEB,Fabric SHA256 为 59DD3F5DDCA6B05CCB106BD0F2863E74185BE578A3855E9F9A24F190422BE2CA。没有启动用户客户端,12GB设置未改变。
最终会话清理复测:两个加载器均通过“取消查询后不能再选择旧候选”检查;新查询、清空、断线和会话过期会取消后台任务,清空查询不会结束其他活动行程。16:16 将该修正后的最终包再次安装,备份为 .cache/profile-backups/20261026-161640,仅一份Navigation。最终NeoForge SHA256:CCFFC467A04F32ABC3A55BC83F1171514E79CD6545B72956064011C4F6996E29;Fabric SHA256:EA85C282118248279D2423195771D2B438C305D9E1B6625D7F01CCC9172443EE。未启动用户客户端,12GB设置未改。
根据用户反馈,移除编辑页中通用搜索框和“打开所选项”操作,改为依次选择出发站、到达站并直接填写分钟/秒。站台可选,名称及说明直接输入,往返和启用各自为明确按钮。空端点显示选择提示,不再显示“车站待同步”;页脚按顺序提示缺失项,无效时禁用保存。个人保存、共享提交与返回固定在底部;小窗口表单可滚轮和拖动滚动条,返回选站页后保留已填内容。新页面仍维持非暂停、目录同步和原有审核权限。
两个加载器构建及既有核心回归通过(NeoForge88通过/1跳过,Fabric Core87通过/2跳过);本轮没有改动搜索和服务端协议。新表单的真实游戏视觉、中文输入及不同GUI缩放尚待用户复查,未接管或启动用户客户端。
安装检查发现用户客户端仍在运行,本轮新表单包尚未替换进测试实例;没有关闭游戏,12GB设置保持不变。
收起状态改为三行,保留线路/车站/倒计时、方向与独立站台区域、来源及提醒状态,避免站台被较长方向挤掉。提醒设置新增自动收起/保持展开,保存于实例配置的 reminderKeepExpanded,默认仍自动收起。原提醒时机、班次关联和数据过期逻辑未改。
起终点及到发站输入框首次点击或Tab获得焦点后全选原文字,直接输入替换,再次点击可局部编辑。切到到发页自动聚焦并全选当前站名;选中文字本身不清空查询、不触发换站,仍由用户回车或点击查询。
两个加载器构建和既有核心回归通过(NeoForge88通过/1跳过,Fabric Core87通过/2跳过);没有新增镜像界面实现的测试。新交互和不同GUI缩放下的视觉仍待真实游戏复查,没有启动或接管用户客户端。
HUD设置页同时预览导航框和班次提醒框,可通过按钮或直接点击选择目标;拖动、滚轮、加减、四角预设及恢复默认作用于所选框。两框独立保存位置、大小;提醒自动收起/保持展开也在此调整,和原提醒设置共用同一个配置值。拖动期间隐藏面板,面板自动选择遮挡较少的位置。
实际渲染和编辑器共用同一布局计算:始终按提醒完全展开的280×66逻辑尺寸保留区域,收起动画在区域内部绘制。冲突优先移动提醒框,空间不足时允许移到边缘或临时缩小两框;即使关闭自动适配也不取消防重叠保护。计算结果按窗口及设置缓存,不改写保存的用户位置,避免动画每帧挤动两个框。无同时活动的另一框时不为不存在的HUD让位。
新增四项几何回归,覆盖23,328组分辨率/GUI缩放/比例/锚点组合,包含320×100极小窗口、关闭自动适配、同角落、双中心、屏幕内约束、碰撞间距、必要时同时缩小、确定性及动画各帧均处于展开预留区域内。NeoForge共93项(92通过、1跳过),Fabric Core共93项(91通过、2跳过),均无失败;两个发行包构建通过。
前一项收起详情保留、站名全选替换交互随本轮一起提交。两框拖动和设置面板、中文及GUI缩放的真实视觉仍需用户实机复查;没有以几何回归代替游戏验收,未启动或接管用户客户端。配置与操作详见 docs/hud-settings.md。
17:51 确认客户端已退出后安装最终统一双HUD版。旧包备份至项目 .cache/profile-backups/20261026-175105,核对Navigation仅一份;NeoForge SHA256为 D00AF6BD5F24CDF2977CE8DB3F999995C6102A510CA84513ADAF8641E66D7BBD,Fabric SHA256为 37118DD67F98A3013133C521E33614449A01B3D2D26FFE534025ACA412138B6C。没有启动客户端或改变12GB设置。
车站目录与通用选择列表使用统一高亮:选中为亮黄铜底、金色双边框、左侧箭头及亮文字,悬停为蓝灰色细边框。目录页脚显示已选名称;选择不再仅依赖接近背景的色差。
新增A–Z、Z–A、离我最近排序,宽窗口直接显示字母索引,窄窗口打开独立索引列表。点击字母跳转并选中该组首站,禁用无匹配的字母,不清空搜索;距离模式点击索引先切A–Z。支持列表获得焦点后按字母、Page Up/Down和Home/End快速浏览,保留上下键和回车。普通目录的距离排序保留未知坐标站并放在最后,重新定位显式刷新距离。
英文分段优先归组,拉丁音标归一化;纯中文使用GB2312常用汉字的拼音首字母分组和Java中文排序,不保证多音地名读音;生僻及未支持字符归其他,仍保留目录及搜索。无新增外部依赖,不增加网络轮询。
新增四项排序/索引回归。NeoForge97项(96通过、1跳过),Fabric Core97项(95通过、2跳过),均无失败;两个发行包构建通过。中英文键及文档链接、Git空白检查通过。新高亮和索引页面的真实游戏视觉及操作仍待用户实测,未接管或启动用户客户端。操作详见 docs/station-directory.md。
确认用户客户端已退出后,已安装本轮新版,旧包备份至项目 .cache/profile-backups/20261026-214641,核对Navigation仅一份。NeoForge SHA256为 AE041DC21EC8E1F80B14244A8419B060FB25ADE09A74EF4F61611CE467296293;Fabric SHA256为 F5473362566A520914BDBE8053620A934C25F18488B85693774AA6CAB61F3247。未启动用户客户端,12GB设置未改。
经用户明确授权,在已经运行的NeoForge21.1.251联机客户端中拍摄五张功能页,保存于 docs/screenshots,README已配图说明。期间实际观察到目录174站、方案查询返回五项、线路分组到发及实时/计划标识;打开了双HUD设置预览及未保存的步行新建表单。
用户最终要求先不脱敏,公开目录保留未脱敏客户区JPEG;不公开中间遮挡版本。截图排除标题栏/任务栏,没有更改游戏世界、发出聊天、保存步行规则或提交共享建议。没有关闭、重启客户端或更换安装包,12GB设置未改。
原生兼容查询期间也观察到过数据过期和重试状态,重试后取得实际数据;本次截图不作为连接或内存稳定性验收。HUD图中03:20是设置预览,步行编辑图未填写有效端点;未借此将途中推进、共享审核或Fabric完整游戏验收标记为通过。
首次Alpha统一版本为0.1.0-alpha.1,NeoForge/Fabric重新构建通过。两个目标Core仍各97项,分别96通过/1跳过与95通过/2跳过,无失败。发行包检查了内部版本、中文显示名、Minecraft依赖、Java21字节码、图标、MIT/LICENSE及NOTICE;不打入MTR或开发存档。安装脚本改为从gradle.properties读取当前版本,语法检查及对应产物路径核对通过。
发行附件为两个对应加载器JAR及SHA256SUMS.txt,工作副本位于项目忽略的 build/release/v0.1.0-alpha.1。更新记录与公开Alpha限制见 CHANGELOG.md 和 docs/releases/0.1.0-alpha.1.md。GitHub交付使用预发布标识,不替代尚未完成的Fabric世界内、双完整客户端及长期稳定性验收。
MTR-Navigation-neoforge-0.1.0-alpha.1.jar SHA256:cdaa26c40e21d8a2f3f005a4d73dd597424d0e77bbfd334e0b6b77ed0fbe2b6d。
MTR-Navigation-fabric-0.1.0-alpha.1.jar SHA256:361a876f6f4539e933841a78b1cf337d266ba6cdaae4f866ecb02cef95f49fe1。