fix: 存档功能修理
This commit is contained in:
@@ -234,6 +234,8 @@ P7 横切
|
||||
`interaction` / `save_on_exit` 登记退出 checkpoint,节点完成并直接结束本轮 Dialogue 后写 state-only 档。
|
||||
- `anchor.nodeName` 对所有档位都保存触发节点;`anchor.startDialogueOnRestore` 独立决定读档时是否启动 Yarn。
|
||||
- 退出 checkpoint 在触发时冻结 node / YarnProject / TalkScene / Dialogue run;`DialogEnd` 初始化期间使用 scoped interaction lock,下一帧捕获完成后才开放玩法输入。
|
||||
- Dialogue run / flow revision / current node / runner 停止状态的稳定性检查只用于 `DialogueExit`。退出节点后若开始任何新 Yarn 节点(含 detour、`no_save`、jump 目标或新 Dialogue),取消该节点末尾存档。
|
||||
- `NodeEnter` 与 `ExplicitCommand` 不因下一帧发生节点流转而取消;它们使用触发时冻结的 node / YarnProject / TalkScene 生成 anchor。连续产生的有效请求全部进入串行队列,后产生的 checkpoint 最终覆盖自动档。
|
||||
- **Fresh 进入 vs detour 续跑**:`SavePointEvaluator` 按 `yarnProjectId` 维护 `InProgressNodes`;节点尚未 `onNodeComplete` 时再次 `onNodeStart`(Yarn detour 返回父节点)→ `DetourResume`,跳过自动存。`OnNodeComplete` 移出集合;切换 YarnProject / `StopDialog` 重置;读档 anchor 重进仅 `OnRestoreEnterNode` 标记,不写盘。
|
||||
- **tag 规则**:`hub` / `linear` / `content` 默认进入时保存;`interaction` 默认 Dialogue 退出时保存;
|
||||
`save_on_exit` 可覆盖其他一级类型;`no_save` 禁止保存,并与上述退出语义冲突。
|
||||
|
||||
Reference in New Issue
Block a user