Add provisions for generic item filters

This commit is contained in:
Matt Nadareski
2024-03-05 09:39:12 -05:00
parent 8875948946
commit 6b7597c052
5 changed files with 37 additions and 5 deletions

View File

@@ -45,6 +45,8 @@ namespace SabreTools.Filter
"set" => ParseMachineFilterId(fieldName!),
// DatItem
"datitem" => ParseDatItemFilterId(fieldName!),
"item" => ParseDatItemFilterId(fieldName!),
_ => ParseDatItemFilterId(itemName, fieldName!),
};
}
@@ -87,6 +89,23 @@ namespace SabreTools.Filter
return (MetadataFile.MachineKey, constantMatch);
}
/// <summary>
/// Parse and validate item fields
/// </summary>
private static (string?, string?) ParseDatItemFilterId(string fieldName)
{
// Get all item types
var itemTypes = TypeHelper.GetDatItemTypeNames();
// If we get any matches
string? match = itemTypes.FirstOrDefault(t => t != null && ParseDatItemFilterId(t, fieldName) != (null, null));
if (match != null)
return ("item", ParseDatItemFilterId(match, fieldName).Item2);
// Nothing was found
return (null, null);
}
/// <summary>
/// Parse and validate item fields
/// </summary>