Files
aibis-dream/Assets/Scripts/SaveSystem/SnapshotService.cs
T

40 lines
1.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System.Collections;
namespace AibisDream.SaveSystem
{
/// <summary>
/// 快照层对外 APICapture / Restore,不涉及文件与 UI。
/// 游戏逻辑应优先使用 <see cref="SaveRestoreOrchestrator"/> 完成存读档流程。
/// </summary>
public static class SnapshotService
{
/// <summary>捕获当前运行时快照。</summary>
/// <param name="triggerNodeName">见 <see cref="SnapshotCapture.Capture"/>。</param>
public static SaveSnapshot Capture(string triggerNodeName = null)
{
SnapshotRegistry.EnsureInitialized();
return SnapshotCapture.Capture(YarnVariableStorage.Instance, triggerNodeName);
}
/// <summary>
/// 还原快照。默认在 provider 还原后继续执行 <see cref="SnapshotRestore.RestoreAnchor"/>。
/// </summary>
/// <param name="restoreAnchor">为 false 时仅还原状态,不重进 Yarn 节点(供 P4 编排使用)。</param>
public static IEnumerator Restore(SaveSnapshot snapshot, bool restoreAnchor = true)
{
if (snapshot == null)
{
yield break;
}
SnapshotRegistry.EnsureInitialized();
yield return SnapshotRestore.Restore(YarnVariableStorage.Instance, snapshot);
if (restoreAnchor)
{
yield return SnapshotRestore.RestoreAnchor(snapshot);
}
}
}
}