实现 P2 槽位/落盘层核心: - SlotTypes:槽位常量、sidecar 元数据、UI 视图模型 - SlotFileSystem:槽位路径工具与原子写 - SlotManager:自动档、手动档、读档、继续游戏、P1 迁移 - SlotThumbnailCapture:存档截图 helper - CloudSave:Steam/TapTap 云存档适配器接口与协调器 在 ConstRef 中补充槽位、截图、文件名常量。
38 lines
1.5 KiB
C#
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);
|
|
}
|
|
}
|