using System; using System.IO; using UnityEditor; using UnityEngine; public class AetheriaDatabaseView : DatabaseListView { // Singleton to avoid multiple instances of window. private static DatabaseListView _instance; private string tableName; public static DatabaseListView Instance => _instance ? _instance : GetWindow(); [MenuItem("Window/Aetheria/Database Tools")] static void Init() => Instance.Show(); private void Awake() { _instance = this; } protected override string DatabaseName => "Aetheria"; protected override string FilePath => Path.Combine(new DirectoryInfo(Application.dataPath).Parent.CreateSubdirectory("GameData").FullName, "AetherDB.msgpack"); protected override DatabaseEntryGroup[] Groupers => new DatabaseEntryGroup[] { new DatabaseEntryGroup( data => data.Category, category => Enum.GetName(typeof(SimpleCommodityCategory), category), (data, category) => data.Category = category ), new DatabaseEntryGroup( data => data.Category, category => Enum.GetName(typeof(CompoundCommodityCategory), category), (data, category) => data.Category = category ), new DatabaseEntryGroup( data => data.HardpointType, type => Enum.GetName(typeof(HardpointType), type), (data, type) => data.Hardpoint = type), new DatabaseEntryGroup( data => data.Manufacturer, factionID => factionID == Guid.Empty ? "Default" : cultCache.Get(factionID).ShortName, (data, faction) => data.Manufacturer = faction), new DatabaseEntryGroup( data => data.HullType, type => Enum.GetName(typeof(HullType), type), (data, type) => data.HullType = type) }; }