Game 模块文档
RhythMC-Reborn 游戏引擎(Game/ 包)文档索引。
文档列表
| 文档 | 内容 |
|---|---|
| architecture.md | 模块分层、类关系图、包依赖 |
| game-lifecycle.md | 游戏状态机、完整游戏流程、各阶段时序 |
| judgment-system.md | 判定流水线、碰撞检测算法、延迟补偿 |
| data-model.md | 谱面数据结构、Format 包 Record 详解 |
包结构速览
Game/
├── Chart/ 运行时谱面对象(Level、TrackObject、NoteObject、GameplayNote)
├── Effects/ 谱面特效实现(AbstractEffect、PersistentEffect 子类)
├── Format/ 不可变谱面数据 Record(RawSong、RawLevel、Track、Note…)
├── GameConstants.java 全局数值常量
├── Guidance/ 玩家反馈层(粒子、音效、ActionBar、记分板…)
├── Instances/ GameInstance(游戏主实例)、ArenaInstance
├── Listeners/ Bukkit 事件监听(判定输入、资源包状态)
├── Managers/ 全局管理器(GameManager、ChartManager、ArenaManager)
│ └── Gameplay/ 游戏内子管理器(Judge、Timing、Feedback、Effect、Stat…)
├── OffsetTest/ 延迟校准小游戏(开发中)
├── ResourcePack/ 资源包三级分发系统
├── Rival/ 对手抽象层(LocalRivalPlayer、CloudRivalPlayer)
└── Utils/ 工具类(JudgeUtils、ChartUtils、GameOptions)
架构层次
运行时说明
- 玩家计分板现在采用三段式刷新:异步定时器发起刷新请求,主线程抓取
PlaceholderAPI/GameInstance/FastBoard相关快照,随后在异步线程完成文本替换与 AdventureComponent渲染,最后再回到主线程提交给FastBoard。 - 这样可以把大部分字符串替换和颜色解析从主线程移开,同时继续遵守 Bukkit 与 PlaceholderAPI 的线程边界。