using System.Text.Json;
using XFEEDToolBox.Core.Engineering;
using XFEEDToolBox.Core.Localization;
using XFEEDToolBox.Core.Models;
namespace XFEEDToolBox.Core.Galaxy;
public sealed record EngineerLocation(string Name,string SystemName,string BaseName,Coordinates Position,string Body,string PortraitFile)
{
public string DisplayName=>ChineseNames.Translate(Name) is var name&&name!="未收录名称"?name:Name;
public string Portrait=>"ms-appx:///Assets/Engineers/"+PortraitFile;
public string Detail=>SystemName+" · "+BaseName;
}
public static class EngineerDirectory
{
public static IReadOnlyList<EngineerLocation> All {get;}=Read();
private static IReadOnlyList<EngineerLocation> Read()
{
using var stream=typeof(EngineerDirectory).Assembly.GetManifestResourceStream("XFEEDToolBox.Core.Galaxy.engineers.json")!;
return JsonSerializer.Deserialize<EngineerLocation[]>(stream,ToolboxSettings.JsonOptions)??[];
}
public static EngineerLocation? Find(string name)=>All.FirstOrDefault(e=>EngineeringCatalog.SameEngineer(e.Name,name));
}
using System.Text.Json;
using XFEEDToolBox.Core.Engineering;
using XFEEDToolBox.Core.Localization;
using XFEEDToolBox.Core.Models;
namespace XFEEDToolBox.Core.Galaxy;
public sealed record EngineerLocation(string Name,string SystemName,string BaseName,Coordinates Position,string Body,string PortraitFile)
{
public string DisplayName=>ChineseNames.Translate(Name) is var name&&name!="未收录名称"?name:Name;
public string Portrait=>"ms-appx:///Assets/Engineers/"+PortraitFile;
public string Detail=>SystemName+" · "+BaseName;
}
public static class EngineerDirectory
{
public static IReadOnlyList<EngineerLocation> All {get;}=Read();
private static IReadOnlyList<EngineerLocation> Read()
{
using var stream=typeof(EngineerDirectory).Assembly.GetManifestResourceStream("XFEEDToolBox.Core.Galaxy.engineers.json")!;
return JsonSerializer.Deserialize<EngineerLocation[]>(stream,ToolboxSettings.JsonOptions)??[];
}
public static EngineerLocation? Find(string name)=>All.FirstOrDefault(e=>EngineeringCatalog.SameEngineer(e.Name,name));
}