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);
}