From 382b784605f8fa309f7fb6634678d572394701d1 Mon Sep 17 00:00:00 2001
From: Ding Yuntian <1491671119@qq.com>
Date: Mon, 29 Jun 2026 15:57:59 +0800
Subject: [PATCH] =?UTF-8?q?feat(save):=20=E6=89=A9=E5=B1=95=E5=BF=AB?=
=?UTF-8?q?=E7=85=A7=20DTO=20=E6=94=AF=E6=8C=81=E4=BB=BB=E5=8A=A1=E9=9D=A2?=
=?UTF-8?q?=E6=9D=BF=E4=B8=8E=E6=A8=A1=E5=9D=97=E7=8A=B6=E6=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Assets/Scripts/SaveSystem/SaveSnapshot.cs | 29 ++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/Assets/Scripts/SaveSystem/SaveSnapshot.cs b/Assets/Scripts/SaveSystem/SaveSnapshot.cs
index c02ee0f69..7556c2bab 100644
--- a/Assets/Scripts/SaveSystem/SaveSnapshot.cs
+++ b/Assets/Scripts/SaveSystem/SaveSnapshot.cs
@@ -139,6 +139,7 @@ namespace AibisDream.SaveSystem
{
AtStart,
AtEnd,
+ /// 从未 Evaluate 过 Timeline 绑定(untouched);非播放中途 Stop。
Stopped
}
@@ -160,6 +161,9 @@ namespace AibisDream.SaveSystem
/// 若由 Addressables 加载 Timeline,记录 key;否则为空。
public string loadedAddressableKey;
+
+ /// 是否曾通过 Play/Reset/RestoreAtEnd 等路径 Evaluate 过 Timeline。
+ public bool hasEverAppliedPlayback;
}
/// sections["screen"]:屏幕饱和度与演出淡入淡出遮罩。
@@ -201,7 +205,18 @@ namespace AibisDream.SaveSystem
public string args;
}
- /// sections["fixPanel"]:FixPanel 壳层 + 线缆/插头状态。
+ /// TaskPanel 单条任务条目快照。
+ [Serializable]
+ public class TaskEntrySnapshotDto
+ {
+ /// Yarn 行 id,如 line:01dade5。
+ public string lineId;
+
+ /// 存档时 UI 显示的完整文本(含 ● 前缀)。
+ public string text;
+ }
+
+ /// sections["fixPanel"]:FixPanel 壳层 + 线缆/插头 + TaskPanel 状态。
[Serializable]
public class FixPanelSnapshotDto
{
@@ -214,6 +229,12 @@ namespace AibisDream.SaveSystem
/// 插头插入的 BodyModule 名(data.moduleName);null/空 = 未插入。
public string pluggedModuleName;
+
+ /// TaskPanel 是否处于展开位(show_task_panel 后)。
+ public bool isTaskPanelVisible;
+
+ /// TaskPanel 当前未完成任务列表(保持插入顺序)。
+ public List tasks = new();
}
/// sections["bodyModule"]:插线模块持久物理状态。
@@ -226,6 +247,12 @@ namespace AibisDream.SaveSystem
public bool isUFRemoved;
public bool isColorRemoved;
public bool isChipRemoved;
+
+ /// 高亮中的模块名(data.moduleName)。
+ public List highlightedModules = new();
+
+ /// 报警中的模块名(data.moduleName)。
+ public List alarmedModules = new();
}
/// sections["eye"]:Eye 维修叙事阶段。