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 维修叙事阶段。