using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Text.Json; using System.Text.Json.Serialization; namespace BetterGenshinImpact.GameTask.AutoPathing.Model; [Serializable] public class PathingTask { /// /// 实际存储的文件名 /// [JsonIgnore] public string FileName { get; set; } = string.Empty; /// /// 实际存储的文件路径 /// [JsonIgnore] public string FullPath { get; set; } = string.Empty; public PathingTaskInfo Info { get; set; } = new(); public List Positions { get; set; } = []; public static PathingTask BuildFromFilePath(string filePath) { var json = File.ReadAllText(filePath); var task = JsonSerializer.Deserialize(json, PathRecorder.JsonOptions) ?? throw new Exception("Failed to deserialize PathingTask"); task.FileName = Path.GetFileName(filePath); task.FullPath = filePath; return task; } public void SaveToFile(string filePath) { var json = JsonSerializer.Serialize(this, PathRecorder.JsonOptions); File.WriteAllText(filePath, json, Encoding.UTF8); } }