From 4e75311e1e795860f6601ef75ae154d5f8bd5474 Mon Sep 17 00:00:00 2001 From: se5a Date: Tue, 4 Jun 2024 10:36:48 +1200 Subject: [PATCH] saving edited files experiments. --- .../ModFileEditing/BluePrintsUI.cs | 31 ++++++++++++++++--- .../ModFileEditing/FileDialog.cs | 7 +++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/Pulsar4X/Pulsar4X.Client/ModFileEditing/BluePrintsUI.cs b/Pulsar4X/Pulsar4X.Client/ModFileEditing/BluePrintsUI.cs index 6153562e2..a41f7a379 100644 --- a/Pulsar4X/Pulsar4X.Client/ModFileEditing/BluePrintsUI.cs +++ b/Pulsar4X/Pulsar4X.Client/ModFileEditing/BluePrintsUI.cs @@ -5,6 +5,7 @@ using System.Numerics; using ImGuiNET; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Pulsar4X.Blueprints; using Pulsar4X.DataStructures; using Pulsar4X.Interfaces; @@ -116,7 +117,7 @@ public void Display(string label) { if (FileDialog.Display(ref _fileDialogPath, ref _fileName, ref _showFileDialog)) { - + Save(); } } } @@ -186,14 +187,36 @@ protected override void Save() { using (StreamWriter outputFile = new StreamWriter(Path.Combine(_fileDialogPath, _fileName))) { - foreach (TechCategoryBlueprint blueprint in _itemBlueprints) + + var tcb = new Tcb() {}; + tcb.Payload = new List(); + foreach (TechCategoryBlueprint bpt in _itemBlueprints) + { + tcb.Payload.Add(bpt); + } + var json = JsonConvert.SerializeObject(tcb, Formatting.Indented); + outputFile.WriteLine(json); + + + /* + Dictionary> dic = new Dictionary>(); + dic.Add(ModInstruction.DataType.TechCategory, new List()); + foreach (TechCategoryBlueprint bpt in _itemBlueprints) { - var json = JsonConvert.SerializeObject(blueprint, Formatting.Indented); - outputFile.WriteLine(json); + dic[ModInstruction.DataType.TechCategory].Add(bpt); } + var json = JsonConvert.SerializeObject(dic, Formatting.Indented); + outputFile.WriteLine(json); + */ } } + class Tcb + { + [JsonConverter(typeof(StringEnumConverter))] + public ModInstruction.DataType Type = ModInstruction.DataType.TechCategory; + public List Payload; + } public override void DisplayEditorWindow(int selectedIndex) { diff --git a/Pulsar4X/Pulsar4X.Client/ModFileEditing/FileDialog.cs b/Pulsar4X/Pulsar4X.Client/ModFileEditing/FileDialog.cs index cd719856c..5f926cd22 100644 --- a/Pulsar4X/Pulsar4X.Client/ModFileEditing/FileDialog.cs +++ b/Pulsar4X/Pulsar4X.Client/ModFileEditing/FileDialog.cs @@ -6,6 +6,13 @@ namespace Pulsar4X.SDL2UI.ModFileEditing; +/*TODO: + *Conformation Dialog if overwriting. + *Ability to filter by file extension + *Proper colomn sizing + *Filter by colomns + */ + public static class FileDialog { public enum SaveOrLoad