mirror of
https://github.com/xivdev/Penumbra.git
synced 2026-02-23 00:07:53 +01:00
Add DeleteDefaultValues on general dicts.
This commit is contained in:
parent
f043311882
commit
f8e3b6777f
1 changed files with 51 additions and 16 deletions
|
|
@ -1,6 +1,5 @@
|
||||||
using System.Collections.Frozen;
|
using System.Collections.Frozen;
|
||||||
using OtterGui.Services;
|
using OtterGui.Services;
|
||||||
using Penumbra.GameData.Structs;
|
|
||||||
using Penumbra.Meta;
|
using Penumbra.Meta;
|
||||||
using Penumbra.Meta.Files;
|
using Penumbra.Meta.Files;
|
||||||
using Penumbra.Meta.Manipulations;
|
using Penumbra.Meta.Manipulations;
|
||||||
|
|
@ -65,65 +64,101 @@ public class ModMetaEditor(ModManager modManager, MetaFileManager metaFileManage
|
||||||
Changes = false;
|
Changes = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DeleteDefaultValues()
|
public bool DeleteDefaultValues(MetaDictionary dict)
|
||||||
{
|
{
|
||||||
var clone = Clone();
|
var clone = dict.Clone();
|
||||||
Clear();
|
dict.Clear();
|
||||||
|
var ret = false;
|
||||||
foreach (var (key, value) in clone.Imc)
|
foreach (var (key, value) in clone.Imc)
|
||||||
{
|
{
|
||||||
var defaultEntry = imcChecker.GetDefaultEntry(key, false);
|
var defaultEntry = imcChecker.GetDefaultEntry(key, false);
|
||||||
if (!defaultEntry.Entry.Equals(value))
|
if (!defaultEntry.Entry.Equals(value))
|
||||||
TryAdd(key, value);
|
{
|
||||||
|
dict.TryAdd(key, value);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Changes = true;
|
{
|
||||||
|
Penumbra.Log.Verbose($"Deleted default-valued meta-entry {key}.");
|
||||||
|
ret = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var (key, value) in clone.Eqp)
|
foreach (var (key, value) in clone.Eqp)
|
||||||
{
|
{
|
||||||
var defaultEntry = new EqpEntryInternal(ExpandedEqpFile.GetDefault(metaFileManager, key.SetId), key.Slot);
|
var defaultEntry = new EqpEntryInternal(ExpandedEqpFile.GetDefault(metaFileManager, key.SetId), key.Slot);
|
||||||
if (!defaultEntry.Equals(value))
|
if (!defaultEntry.Equals(value))
|
||||||
TryAdd(key, value);
|
{
|
||||||
|
dict.TryAdd(key, value);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Changes = true;
|
{
|
||||||
|
Penumbra.Log.Verbose($"Deleted default-valued meta-entry {key}.");
|
||||||
|
ret = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var (key, value) in clone.Eqdp)
|
foreach (var (key, value) in clone.Eqdp)
|
||||||
{
|
{
|
||||||
var defaultEntry = new EqdpEntryInternal(ExpandedEqdpFile.GetDefault(metaFileManager, key), key.Slot);
|
var defaultEntry = new EqdpEntryInternal(ExpandedEqdpFile.GetDefault(metaFileManager, key), key.Slot);
|
||||||
if (!defaultEntry.Equals(value))
|
if (!defaultEntry.Equals(value))
|
||||||
TryAdd(key, value);
|
{
|
||||||
|
dict.TryAdd(key, value);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Changes = true;
|
{
|
||||||
|
Penumbra.Log.Verbose($"Deleted default-valued meta-entry {key}.");
|
||||||
|
ret = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var (key, value) in clone.Est)
|
foreach (var (key, value) in clone.Est)
|
||||||
{
|
{
|
||||||
var defaultEntry = EstFile.GetDefault(metaFileManager, key);
|
var defaultEntry = EstFile.GetDefault(metaFileManager, key);
|
||||||
if (!defaultEntry.Equals(value))
|
if (!defaultEntry.Equals(value))
|
||||||
TryAdd(key, value);
|
{
|
||||||
|
dict.TryAdd(key, value);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Changes = true;
|
{
|
||||||
|
Penumbra.Log.Verbose($"Deleted default-valued meta-entry {key}.");
|
||||||
|
ret = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var (key, value) in clone.Gmp)
|
foreach (var (key, value) in clone.Gmp)
|
||||||
{
|
{
|
||||||
var defaultEntry = ExpandedGmpFile.GetDefault(metaFileManager, key);
|
var defaultEntry = ExpandedGmpFile.GetDefault(metaFileManager, key);
|
||||||
if (!defaultEntry.Equals(value))
|
if (!defaultEntry.Equals(value))
|
||||||
TryAdd(key, value);
|
{
|
||||||
|
dict.TryAdd(key, value);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Changes = true;
|
{
|
||||||
|
Penumbra.Log.Verbose($"Deleted default-valued meta-entry {key}.");
|
||||||
|
ret = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var (key, value) in clone.Rsp)
|
foreach (var (key, value) in clone.Rsp)
|
||||||
{
|
{
|
||||||
var defaultEntry = CmpFile.GetDefault(metaFileManager, key.SubRace, key.Attribute);
|
var defaultEntry = CmpFile.GetDefault(metaFileManager, key.SubRace, key.Attribute);
|
||||||
if (!defaultEntry.Equals(value))
|
if (!defaultEntry.Equals(value))
|
||||||
TryAdd(key, value);
|
{
|
||||||
|
dict.TryAdd(key, value);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Changes = true;
|
{
|
||||||
|
Penumbra.Log.Verbose($"Deleted default-valued meta-entry {key}.");
|
||||||
|
ret = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DeleteDefaultValues()
|
||||||
|
=> Changes = DeleteDefaultValues(this);
|
||||||
|
|
||||||
public void Apply(IModDataContainer container)
|
public void Apply(IModDataContainer container)
|
||||||
{
|
{
|
||||||
if (!Changes)
|
if (!Changes)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue