生命周期
2025/10/14大约 1 分钟
YASCML 的生命周期非常简单,在用户启动游戏后,启动流程可以被分为这么几个周期:
1. 初始化加载器
加载器会在游戏启动后的第一时间内加载。加载器会在这个阶段读取模组文件、检查模组依赖并将模组按照加载顺序排序,最后将它们存放在 window.YASCML.mods
内。
如果在游戏内定义了 热补丁工具,那么加载器会先运行热补丁工具,然后再加载自身。
2. 加载模组样式与预加载脚本
模组定义的样式文件和预加载脚本会在这个阶段按顺序运行。一般在这个阶段,模组会:
- 暴露模组 API
- Hook 引擎暴露的 API
- 预加载需要使用的游戏数据(例如段落数据)
3. 初始化 SugarCube 引擎
SugarCube 引擎会在这个阶段被初始化。请注意在该阶段之前全局对象 window.SugarCube
就已被定义且可以被访问。
4. 加载后加载脚本
模组定义的后加载脚本会在这个阶段按顺序运行。一般在这个阶段,模组会:
- 清理模组文件
- 在游戏内添加自定义 DOM(例如模组管理器入口)
- Hook 可被异步处理的游戏数据(例如图像资源)
5. 生命周期结束
加载器已经完成了所有工作,在这个阶段游戏已经可玩。