Use DictionaryBase for removal

This commit is contained in:
Matt Nadareski
2024-03-05 01:42:42 -05:00
parent 8f594f09a6
commit 539e4367e0
48 changed files with 1044 additions and 813 deletions

View File

@@ -3,6 +3,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using SabreTools.Core;
using SabreTools.Core.Tools;
using SabreTools.Filter;
namespace SabreTools.DatItems.Formats
{
@@ -94,5 +95,30 @@ namespace SabreTools.DatItems.Formats
}
#endregion
#region Manipulation
/// <inheritdoc/>
public override bool RemoveField(DatItemField datItemField)
{
// Get the correct internal field name
string? fieldName = datItemField switch
{
DatItemField.Mask => Models.Metadata.Condition.MaskKey,
DatItemField.Condition_Mask => Models.Metadata.Condition.MaskKey,
DatItemField.Relation => Models.Metadata.Condition.RelationKey,
DatItemField.Condition_Relation => Models.Metadata.Condition.RelationKey,
DatItemField.Tag => Models.Metadata.Condition.TagKey,
DatItemField.Condition_Tag => Models.Metadata.Condition.TagKey,
DatItemField.Value => Models.Metadata.Condition.ValueKey,
DatItemField.Condition_Value => Models.Metadata.Condition.ValueKey,
_ => null,
};
// Remove the field and return
return FieldManipulator.RemoveField(_internal, fieldName);
}
#endregion
}
}