Skip to content

refactor: 重构轨道系统、拆分谱包/谱面加载器、移除谱面定数字段#400

Open
Chen-Luan wants to merge 16 commits into
IPOL-Studio:mainfrom
Chen-Luan:Refactor/重构谱包谱面加载

Hidden character warning

The head ref may contain hidden characters: "Refactor/\u91cd\u6784\u8c31\u5305\u8c31\u9762\u52a0\u8f7d"
Open

refactor: 重构轨道系统、拆分谱包/谱面加载器、移除谱面定数字段#400
Chen-Luan wants to merge 16 commits into
IPOL-Studio:mainfrom
Chen-Luan:Refactor/重构谱包谱面加载

Conversation

@Chen-Luan

@Chen-Luan Chen-Luan commented Jun 8, 2026

Copy link
Copy Markdown
Member
  • 轨道系统重构:ChartModule 中的轨道类型反射注册提取为 TrackTypeRegistry 静态类;MusicGameTrackModule(DataModule)改为 TrackLoaderRegistry 静态注册表,消除对模块生命周期的依赖
  • 拆分谱包/谱面加载器:加载逻辑从 ChartModule 提取到 ChartPackDataLoader 和 ChartDataLoader,ChartModule 仅负责谱包列表管理
  • 移除谱面定数字段:删除 ChartMetaData.Level 及编辑器中相关 UI/VM 代码
  • InternalChartPackItem 合并:独立文件删除,结构体合并到 InternalChartPackListSO,字段 Path → ChartPackFilePath
  • 修复内存泄漏:谱面加载改为注册 CustomRawAssetConverter,移除旧的 TextAsset + JSON 反序列化路径
  • 清理:删除未使用的哈希缓存、DifficultiesAbleToPlay、按难度选谱逻辑;方法名统一 Desk → Disk

@Chen-Luan Chen-Luan added Type: 优化 Enhancement 新需求或原有功能的优化 Optimization of new requirements or existing functions Priority: 低 Low labels Jun 8, 2026
@memorydream

Copy link
Copy Markdown
Collaborator

没看 diff,给全项目修 typo 是一个涉及面比较广的事,如果只是相关模块的 typo 那在 commit 的提一下就好,如果真是全项目建议单独提一个 fix typo pr

@Chen-Luan Chen-Luan force-pushed the Refactor/重构谱包谱面加载 branch 3 times, most recently from 724c589 to 0723575 Compare June 13, 2026 15:00
@Chen-Luan Chen-Luan changed the title Refactor: 重构谱包谱面加载 refactor: 重构轨道系统、拆分谱包/谱面加载器、移除谱面定数字段 Jun 19, 2026
Chen-Luan added 10 commits June 20, 2026 02:55
移除 ChartMetadata.Level 属性及相关构造函数参数
移除 ChartMetaDataEditorModel.Level 响应式属性
移除 ChartDataView 中 levelField 的 UI 绑定
移除 ChartDataViewModel 中 ChartLevelString 和 SetChartLevelString
将 InternalChartPackItem 结构体合入 InternalChartPackListSO 文件
重命名字段 Path -> ChartPackFilePath
为 ChartPackLevels 添加命名空间 CyanStars.Chart
将 ChartLoadHelper 静态工具类拆分为职责单一的加载器:
- ChartPackDataLoader: 谱包批量/增量加载与重载
- ChartDataLoader: 单个谱面数据加载

ChartModule 改用新的加载器接口,移除 ChartPackFileName 常量
新增 OnSelectedChartChanged 事件用于 UI 响应选中变化
移除 RuntimeChartPack.DifficultiesAbleToPlay 字段
新增静态注册表替代模块级反射扫描:
- TrackTypeRegistry: 管理 轨道键->轨道数据类型 映射
- TrackLoaderRegistry: 管理 轨道数据类型->ITrackLoader 映射

从 ChartModule 中移除 TrackKeyToTypeMap 及反射逻辑
ChartTrackDataReadConverter 改由 TrackTypeRegistry 查询
MusicGameProcedure 改由 TrackLoaderRegistry 查询
移除 MusicGameTrackModule 数据模块
MapListPage: 移除无用 import 和字段,简化 lambda
ChartPackData: 更新谱面包内部文档注释
补上 Loading/ 目录的 .meta 文件
@Chen-Luan Chen-Luan force-pushed the Refactor/重构谱包谱面加载 branch from 2a804a1 to 4f035a9 Compare June 19, 2026 18:55
@Chen-Luan Chen-Luan force-pushed the Refactor/重构谱包谱面加载 branch from 35f384b to 43c93c0 Compare June 20, 2026 13:49
Comment thread Cyan-Stars/Assets/Scripts/Chart/Tracks/TrackTypeRegistry.cs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority: 低 Low Type: 优化 Enhancement 新需求或原有功能的优化 Optimization of new requirements or existing functions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants