From 05bbdb98e185b4551347a2afd8b6f0dd24d236e4 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sat, 19 Feb 2022 17:34:30 -0800 Subject: [PATCH] Enable trainer saving untested --- pkNX.Containers/FolderContainer.cs | 2 ++ pkNX.WinForms/MainEditor/EditorPLA.cs | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/pkNX.Containers/FolderContainer.cs b/pkNX.Containers/FolderContainer.cs index 1c969357..bdba1751 100644 --- a/pkNX.Containers/FolderContainer.cs +++ b/pkNX.Containers/FolderContainer.cs @@ -21,6 +21,8 @@ public class FolderContainer : IFileContainer public FolderContainer(string path) => FilePath = path; public FolderContainer(string path, Func filter) : this(path) => Initialize(filter); + public IReadOnlyList GetPaths() => Paths; + public void Initialize(Func? filter = null) { if (Paths.Count > 0) diff --git a/pkNX.WinForms/MainEditor/EditorPLA.cs b/pkNX.WinForms/MainEditor/EditorPLA.cs index c5b90de9..72dcd78a 100644 --- a/pkNX.WinForms/MainEditor/EditorPLA.cs +++ b/pkNX.WinForms/MainEditor/EditorPLA.cs @@ -55,13 +55,19 @@ public void EditScript() public void EditTrainers() { - var folder = ROM.GetFilteredFolder(GameFile.TrainerData).FilePath; - var files = Directory.GetFiles(folder); - var data = files.Select(FlatBufferConverter.DeserializeFrom).ToArray(); - var names = files.Select(Path.GetFileNameWithoutExtension).ToArray(); - var cache = new DataCache(data); - using var form = new GenericEditor(cache, names, "Trainers", canSave: false); + var folder = ROM.GetFilteredFolder(GameFile.TrainerData); + var cache = new DataCache(folder) + { + Create = FlatBufferConverter.DeserializeFrom, + Write = FlatBufferConverter.SerializeFrom, + }; + var names = folder.GetPaths().Select(Path.GetFileNameWithoutExtension).ToArray(); + using var form = new GenericEditor(cache, names, "Trainers", canSave: true); form.ShowDialog(); + if (!form.Modified) + return; + + cache.Save(); } public void PopFlat(GameFile file, string title, Func getName, Action? rand = null, bool canSave = true) where T1 : class, IFlatBufferArchive where T2 : class