using SpaceEngineersBlueprintEditor.Model; using XFEExtension.NetCore.FileExtension; namespace SpaceEngineersBlueprintEditor.Utilities; /// /// 蓝图管理器 /// public static class BlueprintsManager { /// /// 本地蓝图 /// public static List LocalBlueprints { get; set; } = []; /// /// 云端蓝图 /// public static List CloudBlueprints { get; set; } = []; /// /// 工坊蓝图 /// public static List WorkshopBlueprints { get; set; } = []; /// /// 加载本地蓝图 /// /// public static List LoadLocalBlueprints() => LoadBlueprintsFrom(SpaceEngineersPath.LocalBlueprints); /// /// 加载云端蓝图 /// /// public static List LoadCloudBlueprints() => LoadBlueprintsFrom(SpaceEngineersPath.CloudBlueprints); /// /// 加载工坊蓝图 /// /// public static List LoadWorkshopBlueprints() => LoadBlueprintsFrom(SpaceEngineersPath.WorkshopBlueprints); /// /// 从指定位置加载蓝图 /// /// 指定目录 /// public static List LoadBlueprintsFrom(string path) { var list = new List(); foreach (var directory in Directory.GetDirectories(path)) { var blueprintPath = $@"{directory}\bp.sbc"; var imagePath = $@"{directory}\thumb.png"; var hasBlueprint = File.Exists(blueprintPath); list.Add(new(imagePath, hasBlueprint, File.Exists(imagePath), Path.GetFileName(directory)!, hasBlueprint ? $"{new FileInfo(blueprintPath).Length.FileSize()}" : string.Empty, blueprintPath)); } return list; } /// /// 加载蓝图 /// public static void LoadBlueprints() { LocalBlueprints = LoadLocalBlueprints(); CloudBlueprints = LoadCloudBlueprints(); WorkshopBlueprints = LoadWorkshopBlueprints(); } /// /// 异步加载蓝图 /// /// 异步任务 public static async Task LoadBlueprintsAsync() => await Task.Run(LoadBlueprints); }