using System;
using System.Numerics;
namespace PCL.Core.Minecraft.Saves;
///
/// 存档核心数据模型 —— 不可变记录,由解析器从 level.dat 中提取。
/// 调用方通过 获取此对象。
///
public sealed record SaveInfo
{
/// 世界名称。
public required string LevelName { get; init; }
/// 最后保存此存档的游戏版本名(如 "1.20.4")。
public string? VersionName { get; init; }
/// 最后保存此存档的游戏数据版本号(对应 Data.Version.Id)。
public int? VersionId { get; init; }
/// 世界种子。
public long? Seed { get; init; }
/// 最后游玩时间(UTC)。
public DateTime LastPlayedUtc { get; init; }
/// 出生点坐标 (X, Y, Z)。
public Vector3? Spawn { get; init; }
/// 游戏模式。Hardcore 通过 IsHardcore 字段表示。
public GameMode GameMode { get; init; }
/// 游戏难度。1.3.1 之前的存档中可能为 null。
public Difficulty? Difficulty { get; init; }
/// 难度是否已锁定。
public bool IsDifficultyLocked { get; init; }
/// 是否为极限模式。
public bool IsHardcore { get; init; }
/// 是否允许作弊命令。
public bool AllowCommands { get; init; }
/// 累计游戏时间。
public TimeSpan PlayTime { get; init; }
/// 存档文件夹的绝对路径。
public required string FolderPath { get; init; }
/// 存档文件夹的创建时间(UTC)。
public DateTime CreatedAt { get; init; }
/// level.dat 的最后修改时间(UTC)。
public DateTime ModifiedAt { get; init; }
}