# 游戏原始 UI 图标 游戏对象及游戏功能入口统一使用原始游戏资源。当前星系页不再用系统字体的星形、地球、房屋、无线信号或显示器来代替地点类型。 ## 入口与覆盖 `XFEEDToolBox.Core/Rendering/GameUiIcons.cs` 定义稳定的资源键与地点映射;WinUI 中用 `controls:GameIcon` 显示矢量资源,不重新描边、改色或填充背景。 - 当前星系:地点行、游戏选定目的地标记、筛选按钮和各地点类型筛选项。 - 游戏功能入口:航行概览、银河系图、当前星系图、商品、材料、装配、工程师、跑商航线及执行入口。 - 装配:四类槽位分类、工程师页签及工程等级选择。 - 其他页面:概览的星系/导航图标、路线计算与空路线预览、材料筛选入口。 具体模块继续由 `ModuleIcon` 读取原始模块图片;材料类别与稀有度继续使用 `Assets/Materials` 中已有的游戏资源。关闭、返回、复制、展开、排序和任务状态等通用界面控件沿用应用控件。 新增游戏图标应加入同一目录与来源清单,然后通过共享资源键复用;不要在新页面另画近似图案。 ## 原始来源 `Assets/GameIcons/source.json` 逐个记录文件 SHA-256、原始资源、矢量符号和时间线帧,或者位图图集裁剪坐标与原始 RGBA 哈希。 | 游戏资源 | 资源标识 | 源文件 SHA-256 | | --- | --- | --- | | cockpitexternalpanel | d5cd6f1c6d4c730748078d9675e19c5d151b4887 | 681e539c3386f31ab3a44da33b8e0a6dd25e73bded7a58dca67742993d549c48 | | cockpitinternalpanel2 | 469d5b272ca4c4e23e9649303cba6ebb894f487d | c1f00073826b929418d2feecbc7da3ce1b8f750434dba98f083d91da01d2e58d | | outfitting3 | d644aab217bdd3cf8404c3463b7041b0ca50eb42 | d9d394604b18a9ce386f342fbd67042e97d6da2d4c64246d2cd43008e9c2bfb3 | 共导入 66 个矢量图标和 2 个工程等级位图。矢量几何、颜色和透明度保留导出文件原字节;工程等级来自 `Outfitting3_I1.dds` 原始 BC7 图集,解码后按 `DefineSubImage` 的矩形裁剪,不重绘或重采样。 外部导航面板的 `icons.LocationTypeIcons` 有 52 个标签,其中 `TitanCloud` 帧在原游戏资源中只有透明边界,未作为可用图标导入。其余 51 个地点图标均保留。游戏选定目的地使用实际地点行 `type.current` 中的青色标记。 不要把原生地点目录的 `NativeKind` 直接当作 Scaleform 的 `LocationType` 数字:两者不是同一个枚举。已知种类显式映射,其他地点按已确认的地点类别使用游戏通用图标;没有数据证明时不猜测空间站的具体外形、行星大气或据点经济类型。 ## 重建与验证 离线提取证据保存在忽略目录 `artifacts/game-navigation-icons`,不附加游戏进程,不调用游戏函数,也不修改游戏安装文件。 1. 使用项目已有本地资源解码器解开上述游戏 UI 资源,保留 GFX 元数据及原始数据区。 2. 使用 JPEXS 26.4.0 导出来源清单所列符号和帧的 SVG。涉及外部位图的帧不能直接当成完整 SVG;否则会出现导出器的红色占位方块。材料功能入口使用内部面板真正的 `MaterialsIcon`。 3. 用含 Pillow 12.3 或更新版本的 Python 运行: ```powershell python research/Build-GameIconAssets.py --exports artifacts/game-navigation-icons ``` 导入脚本校验原始资源版本与图集哈希,拒绝缺失位图依赖的 SVG。工程等级图集按原始数据项的缓冲区交错顺序读取,不能只按缓冲编号排序。 4. 运行 `GameUiIconsTests` 与 `SystemLocationUpdatesTests`。原始来源和打包资源逐个核对哈希,验证导航信标/航母等原生种类不会误用 Scaleform 编号,验证图标变化只通知本行绑定。 5. 运行独立客户端离线预览: ```powershell XFEEDToolBox.exe --offline-preview --no-session-automation --data-dir <独立数据目录> --smoke-game-icons <报告路径> ``` 此探针在自己的后台窗口核验真实地点列表、四类装配图标、筛选内容和完整图标目录,并输出截图及实际 XAML 元素尺寸。它强制离线预览、无飞行驱动、无实时 Journal;不得用玩家正在使用的数据目录运行。 视觉证据位于 `work/visual/game-icons`。截图需要按 `background-visual-check` 流程检查原图、局部与原始资源对照;编译通过不等于视觉通过。