Advanced Memory Card 1.2.0-1.12.2
Curse Maven Snippet
What's new
Minecraft 1.12.2 · Forge 14.23.5.2860 或更高 · AE2 AE2 Extended Life(570458:6302098)
把配置模式界面按 1.21.1 基准重做,并完成 64 位频段、操作按钮、高亮与传送链路的收尾;面板直接使用基准贴图。复制模式与七项粘贴选项保持原有行为。
新增
- 四列 P2P 树:状态点、名称(带折叠箭头)、频段、摘要四列对齐,列头常驻在列表上方;频段列右对齐显示 4 位十六进制。
Ctrl多选:在同一类型下追加选中多台设备,跨类型时自动清空重选,底部操作条随之切换成「批量绑定」。Ctrl拖动框选:拖出一片矩形把行整片选上,框选与单点多选共用同一份选择集,在树外松开鼠标也能正常收尾。- 顶部配对条:「源 → 目标」一屏可见,点开频段下拉即可选目标频段,一次点击完成绑定;多选时显示「N 个源」。
- 底部操作条与状态行:「绑定」主按钮 + 批量模式开关,右侧常驻一行状态提示,16 种状态(绑定成功 / 无目标 / 频段非法 / 无网络 / 批量部分成功 / 切换失败等)按等级上色。
- 右侧检查器:类型、频段、输入/输出状态、连接状态,就地提供改名、切换为输入端、传送、高亮等按钮。
- 传送落地后点亮目标 P2P:传送发包后界面立即关闭;同维度时客户端立刻尝试点亮,跨维度时由
ClientTickTasks等「落点 + 目标部件可查」,并在rotateHeadOnHighlight开启时转头;10 秒超时。
改进
- 搜索与滚轮:滚动条拖动与鼠标滚轮都能滚树列表(滚轮一格三行),搜索框内容变化才重新过滤,不再每帧重扫。
- 同步节流:服务端数据版本号没变时不重灌频道列表与状态码,界面的稳定性和手感的抖动都随之改善。
- 绑定后的自动导航:配对源发生变化时才把界面滚到那个 P2P,不再每帧重复定位。
- 高亮描边更醒目:线宽从
2.0提到3.5;基色先向白色混合 35% 提亮,再按 0.5 秒周期在 50% / 100% 亮度之间脉冲。「高亮」按钮与传送共用同一个P2PRenderer。 - 传送后立刻点亮:服务端传送完成后立即发一次
HighlightPacket,客户端关界面后也立刻本地尝试一次,同维度时无需等待。 - 配置界面去掉代码绘制矩形:整块
0xFFC7CCDA的fillRect换成基准config_mode_menu.png(从 1.21.1 原样复制,md50a4cb6e7bcc09d2fdcb4dfcc94c1f639,512×512,取左上 440×312);检查器的paletteSurface填充移除;搜索框关闭原版黑底并补占位符,标题对齐 (7,7)。
修复
- 状态行不再空白:底部操作条现在会显示 16 种状态提示(绑定成功 / 无目标 / 频段非法 / 无网络 / 批量部分成功 / 切换失败等),此前界面里没有这一行,绑定结果只能靠聊天栏猜。
- 界面显示原始翻译键:
TranslateHelper.Keys拼出的是双前缀gui.advanced_memory_card.advanced_memory_card.*,而pair/action_bar/status_line写成了单前缀、tree/tree_col缺失,共 39 个键对不上。现在 29 条改为双前缀,补齐 10 条tree/tree_col键,en / zh 各 123 键、键集合一致。 - 俄语语言文件补齐:
ru_ru.lang从 78 键补到 123 键,与 en / zh 键集合一致;新增内容覆盖配对条、操作条、状态行、树列与快捷键,占位符数量与英文逐条对齐。 - 树整块点不动:基准里「鼠标命中控件 → 调
onClick」是 AE2AbstractWidget#mouseClicked干的活,旧版Widget基类的mouseClicked只返回false,于是P2PTreeWidget.onClick从头到尾没有调用者 —— 点设备行不选中、点频段行不展开、Ctrl 多选与框选起手也都没了。现在树的mouseClicked自己派发:左键落在树矩形内就调onClick并返回true。 - 滚动条被树吃掉点击:滚动条的矩形压在树右缘的 14px 留白上,而事件的派发顺序是「树 → 滚动条」,树开始消费点击之后滑块就再也拖不动了。现在滚动条先于树判定。
- 批量模式多选只绑定一台:多选集合的键
positionKey用info.dimension()(维度名,如overworld)拼P2PPosition,而p2pInfoMap的键用的是String.valueOf(dimensionId)(如0);P2PPosition.equals又把 dimension 纳入比较,于是p2pInfoMap.get(key)全部落空,getSourceCandidates()退回单选的selectedP2PInfo,doBind()只发bind_frequency而不是bind_frequency_batch。现在positionKey统一用维度 id 字符串,多选反查能拿全所有设备。 - 高亮始终不渲染(客户端找不到部件):
ClientHighlightHandler.findPart用DimensionManager.getWorld(dimId)。1.12.2 的DimensionManager是服务端注册表,setWorld只在WorldServer/MinecraftServer里调用,客户端loadWorld不会注册ClientWorld:专用服务器客户端上getWorld恒为null,单机拿到的是服务端ServerWorld及其部件,都不是渲染用的那一份。现在改用Minecraft.world,并且只处理当前维度。 - 高亮不关闭界面:
onHighlightP2P/onHighlightChannel只发了高亮包,GUI 一直留在屏幕上,世界里的描边被界面挡住。现在按 C4 执行「发包 → 关界面 → 转头」,频段高亮转向该频段第一台输入端。
已知限制
- 本版界面与 1.21.1 基准的布局常量一致,面板直接使用基准
config_mode_menu.png贴图;1.12.2 没有 AE2 的 ScreenStyle 槽位机制,控件仍为自绘。 - 与 1.7.10 版一致,本版没有做「鼠标悬停 tooltip」。
This mod has no additional files

