Ensure machine has writable items

This commit is contained in:
Matt Nadareski
2020-09-25 20:25:29 -07:00
parent d66e2a57cf
commit 80f5b69513
17 changed files with 85 additions and 0 deletions

View File

@@ -157,6 +157,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -484,6 +484,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -3793,6 +3793,27 @@ namespace SabreTools.Library.DatFiles
return Enum.GetValues(typeof(ItemType)) as ItemType[];
}
/// <summary>
/// Get if a machine contains any writable items
/// </summary>
/// <param name="datItems">DatItems to check</param>
/// <returns>True if the machine contains at least one writable item, false otherwise</returns>
/// <remarks>Empty machines are kept with this</remarks>
protected bool ContainsWritable(List<DatItem> datItems)
{
// Empty machines are considered writable
if (datItems == null || datItems.Count == 0)
return true;
foreach (DatItem datItem in datItems)
{
if (GetSupportedTypes().Contains(datItem.ItemType))
return true;
}
return false;
}
/// <summary>
/// Get if an item should be ignored on write
/// </summary>

View File

@@ -303,6 +303,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -137,6 +137,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -150,6 +150,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items[key];
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -300,6 +300,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -1197,6 +1197,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -716,6 +716,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -67,6 +67,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -703,6 +703,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -557,6 +557,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -407,6 +407,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -371,6 +371,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -218,6 +218,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -145,6 +145,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);

View File

@@ -556,6 +556,10 @@ namespace SabreTools.Library.DatFiles
{
List<DatItem> datItems = Items.FilteredItems(key);
// If this machine doesn't contain any writable items, skip
if (!ContainsWritable(datItems))
continue;
// Resolve the names in the block
datItems = DatItem.ResolveNames(datItems);