Files
aibis-dream/Assets/Scripts/SaveSystem/CloudSave/ICloudSaveBackend.cs
T
dingyuntian 6fcf340230 feat(save): 添加槽位类型与云存档扩展层
实现 P2 槽位/落盘层核心:
- SlotTypes:槽位常量、sidecar 元数据、UI 视图模型
- SlotFileSystem:槽位路径工具与原子写
- SlotManager:自动档、手动档、读档、继续游戏、P1 迁移
- SlotThumbnailCapture:存档截图 helper
- CloudSave:Steam/TapTap 云存档适配器接口与协调器

在 ConstRef 中补充槽位、截图、文件名常量。
2026-06-12 17:40:57 +08:00

38 lines
1.5 KiB
C#

using System;
using System.Threading.Tasks;
namespace AibisDream.SaveSystem.CloudSave
{
/// <summary>
/// 云存档后端适配器接口。
/// <para>
/// P2 仅定义接口与本地 no-op 实现,未来 Steamworks.NET / TapTap TDS SDK 通过实现此接口接入。
/// 每个槽位在本地对应一组文件(snapshot.json / meta.json / thumbnail.png),
/// backend 可选择逐文件上传,或将整组文件打包后上传。
/// </para>
/// </summary>
public interface ICloudSaveBackend
{
/// <summary>平台名称,用于日志。</summary>
string PlatformName { get; }
/// <summary>当前平台是否可用。</summary>
bool IsAvailable { get; }
/// <summary>上传槽位文件集。</summary>
/// <param name="slotIndex">槽位编号。</param>
/// <param name="filePaths">该槽位下需要同步的文件绝对路径。</param>
Task UploadSlotAsync(int slotIndex, string[] filePaths);
/// <summary>下载槽位文件集到目标目录。</summary>
Task DownloadSlotAsync(int slotIndex, string targetDirectory);
/// <summary>删除云端槽位。</summary>
Task DeleteSlotAsync(int slotIndex);
/// <summary>获取云端该槽位的时间戳,用于冲突检测。</summary>
/// <returns>远程保存时间;不存在返回 null。</returns>
Task<DateTime?> GetRemoteTimestampAsync(int slotIndex);
}
}