mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Ensure machine has writable items
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user