This commit is contained in:
Ottermandias 2024-04-25 18:18:57 +02:00
parent 0fd14ffefc
commit 06953c175d
5 changed files with 31 additions and 27 deletions

View file

@ -68,21 +68,6 @@ public interface IModGroup
return true;
}
public static void WriteJsonBase(JsonTextWriter jWriter, IModGroup group)
{
jWriter.WriteStartObject();
jWriter.WritePropertyName(nameof(group.Name));
jWriter.WriteValue(group!.Name);
jWriter.WritePropertyName(nameof(group.Description));
jWriter.WriteValue(group.Description);
jWriter.WritePropertyName(nameof(group.Priority));
jWriter.WriteValue(group.Priority.Value);
jWriter.WritePropertyName(nameof(group.Type));
jWriter.WriteValue(group.Type.ToString());
jWriter.WritePropertyName(nameof(group.DefaultSettings));
jWriter.WriteValue(group.DefaultSettings.Value);
}
public (int Redirections, int Swaps, int Manips) GetCounts();
public static (int Redirections, int Swaps, int Manips) GetCountsBase(IModGroup group)

View file

@ -54,4 +54,19 @@ public readonly struct ModSaveGroup : ISavable
SubModHelpers.WriteModContainer(j, serializer, _defaultMod!, _basePath);
j.WriteEndObject();
}
public static void WriteJsonBase(JsonTextWriter jWriter, IModGroup group)
{
jWriter.WriteStartObject();
jWriter.WritePropertyName(nameof(group.Name));
jWriter.WriteValue(group!.Name);
jWriter.WritePropertyName(nameof(group.Description));
jWriter.WriteValue(group.Description);
jWriter.WritePropertyName(nameof(group.Priority));
jWriter.WriteValue(group.Priority.Value);
jWriter.WritePropertyName(nameof(group.Type));
jWriter.WriteValue(group.Type.ToString());
jWriter.WritePropertyName(nameof(group.DefaultSettings));
jWriter.WriteValue(group.DefaultSettings.Value);
}
}

View file

@ -135,15 +135,17 @@ public sealed class MultiModGroup(Mod mod) : IModGroup, ITexToolsGroup
public void WriteJson(JsonTextWriter jWriter, JsonSerializer serializer, DirectoryInfo? basePath = null)
{
IModGroup.WriteJsonBase(jWriter, this);
ModSaveGroup.WriteJsonBase(jWriter, this);
jWriter.WritePropertyName("Options");
jWriter.WriteStartArray();
foreach (var option in OptionData)
{
jWriter.WriteStartObject();
SubModHelpers.WriteModOption(jWriter, option);
jWriter.WritePropertyName(nameof(option.Priority));
jWriter.WriteValue(option.Priority.Value);
SubModHelpers.WriteModContainer(jWriter, serializer, option, basePath ?? Mod.ModPath);
jWriter.WriteEndObject();
}
jWriter.WriteEndArray();

View file

@ -139,13 +139,15 @@ public sealed class SingleModGroup(Mod mod) : IModGroup, ITexToolsGroup
public void WriteJson(JsonTextWriter jWriter, JsonSerializer serializer, DirectoryInfo? basePath = null)
{
IModGroup.WriteJsonBase(jWriter, this);
ModSaveGroup.WriteJsonBase(jWriter, this);
jWriter.WritePropertyName("Options");
jWriter.WriteStartArray();
foreach (var option in OptionData)
{
jWriter.WriteStartObject();
SubModHelpers.WriteModOption(jWriter, option);
SubModHelpers.WriteModContainer(jWriter, serializer, option, basePath ?? Mod.ModPath);
jWriter.WriteEndObject();
}
jWriter.WriteEndArray();

View file

@ -1,19 +1,19 @@
using Penumbra.Meta.Manipulations;
using Penumbra.Mods.Editor;
using Penumbra.Mods.Groups;
using Penumbra.String.Classes;
namespace Penumbra.Mods.SubMods;
using Penumbra.Meta.Manipulations;
using Penumbra.Mods.Editor;
using Penumbra.Mods.Groups;
using Penumbra.String.Classes;
namespace Penumbra.Mods.SubMods;
public class DefaultSubMod(IMod mod) : IModDataContainer
{
public const string FullName = "Default Option";
internal readonly IMod Mod = mod;
public Dictionary<Utf8GamePath, FullPath> Files { get; set; } = [];
public Dictionary<Utf8GamePath, FullPath> FileSwaps { get; set; } = [];
public HashSet<MetaManipulation> Manipulations { get; set; } = [];
public Dictionary<Utf8GamePath, FullPath> Files { get; set; } = [];
public Dictionary<Utf8GamePath, FullPath> FileSwaps { get; set; } = [];
public HashSet<MetaManipulation> Manipulations { get; set; } = [];
IMod IModDataContainer.Mod
=> Mod;