using System.Collections; using AibisDream.UI; namespace AibisDream.SaveSystem { /// sections["playTool"]:物品图与全屏图。RestoreOrder=71。 public sealed class PlayToolSnapshotProvider : IAsyncSnapshotProvider { public string SaveId => SnapshotProviderIds.PlayTool; public int RestoreOrder => 71; public object Capture() { var panel = UIManager.Instance?.GetPanel(); return panel != null ? panel.CaptureSnapshot() : null; } public IEnumerator RestoreAsync(object dto, SnapshotRestoreContext context) { if (dto is not PlayToolSnapshotDto snapshot) { context.Warn("[PlayToolSnapshotProvider] DTO 类型不匹配,跳过还原。"); yield break; } var panel = UIManager.Instance?.GetPanel(); if (panel == null) { context.Warn("[PlayToolSnapshotProvider] PlayToolPanel 未初始化,跳过还原。"); yield break; } yield return panel.RestoreSnapshotAsync(snapshot, context.Warn); } } }