mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-15 21:24:18 +01:00
Add button to remove default-valued meta entries.
This commit is contained in:
parent
3e2c9177a7
commit
233a999650
2 changed files with 72 additions and 7 deletions
|
|
@ -1,12 +1,15 @@
|
|||
using System.Collections.Frozen;
|
||||
using OtterGui.Services;
|
||||
using Penumbra.GameData.Structs;
|
||||
using Penumbra.Meta;
|
||||
using Penumbra.Meta.Files;
|
||||
using Penumbra.Meta.Manipulations;
|
||||
using Penumbra.Mods.Manager;
|
||||
using Penumbra.Mods.SubMods;
|
||||
|
||||
namespace Penumbra.Mods.Editor;
|
||||
|
||||
public class ModMetaEditor(ModManager modManager) : MetaDictionary, IService
|
||||
public class ModMetaEditor(ModManager modManager, MetaFileManager metaFileManager, ImcChecker imcChecker) : MetaDictionary, IService
|
||||
{
|
||||
public sealed class OtherOptionData : HashSet<string>
|
||||
{
|
||||
|
|
@ -62,6 +65,65 @@ public class ModMetaEditor(ModManager modManager) : MetaDictionary, IService
|
|||
Changes = false;
|
||||
}
|
||||
|
||||
public void DeleteDefaultValues()
|
||||
{
|
||||
var clone = Clone();
|
||||
Clear();
|
||||
foreach (var (key, value) in clone.Imc)
|
||||
{
|
||||
var defaultEntry = imcChecker.GetDefaultEntry(key, false);
|
||||
if (!defaultEntry.Entry.Equals(value))
|
||||
TryAdd(key, value);
|
||||
else
|
||||
Changes = true;
|
||||
}
|
||||
|
||||
foreach (var (key, value) in clone.Eqp)
|
||||
{
|
||||
var defaultEntry = new EqpEntryInternal(ExpandedEqpFile.GetDefault(metaFileManager, key.SetId), key.Slot);
|
||||
if (!defaultEntry.Equals(value))
|
||||
TryAdd(key, value);
|
||||
else
|
||||
Changes = true;
|
||||
}
|
||||
|
||||
foreach (var (key, value) in clone.Eqdp)
|
||||
{
|
||||
var defaultEntry = new EqdpEntryInternal(ExpandedEqdpFile.GetDefault(metaFileManager, key), key.Slot);
|
||||
if (!defaultEntry.Equals(value))
|
||||
TryAdd(key, value);
|
||||
else
|
||||
Changes = true;
|
||||
}
|
||||
|
||||
foreach (var (key, value) in clone.Est)
|
||||
{
|
||||
var defaultEntry = EstFile.GetDefault(metaFileManager, key);
|
||||
if (!defaultEntry.Equals(value))
|
||||
TryAdd(key, value);
|
||||
else
|
||||
Changes = true;
|
||||
}
|
||||
|
||||
foreach (var (key, value) in clone.Gmp)
|
||||
{
|
||||
var defaultEntry = ExpandedGmpFile.GetDefault(metaFileManager, key);
|
||||
if (!defaultEntry.Equals(value))
|
||||
TryAdd(key, value);
|
||||
else
|
||||
Changes = true;
|
||||
}
|
||||
|
||||
foreach (var (key, value) in clone.Rsp)
|
||||
{
|
||||
var defaultEntry = CmpFile.GetDefault(metaFileManager, key.SubRace, key.Attribute);
|
||||
if (!defaultEntry.Equals(value))
|
||||
TryAdd(key, value);
|
||||
else
|
||||
Changes = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void Apply(IModDataContainer container)
|
||||
{
|
||||
if (!Changes)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue