Make Machine inherent to DatItem instead of passing through

This commit is contained in:
Matt Nadareski
2026-04-02 16:23:16 -04:00
parent ca95e96402
commit 355aa4b94c
21 changed files with 182 additions and 190 deletions

View File

@@ -63,11 +63,6 @@ namespace SabreTools.Metadata.DatItems
/// </summary>
public const string DupeTypeKey = "DUPETYPE";
/// <summary>
/// Machine associated with the item
/// </summary>
public const string MachineKey = "MACHINE";
/// <summary>
/// Flag if item should be removed
/// </summary>
@@ -87,6 +82,11 @@ namespace SabreTools.Metadata.DatItems
/// </summary>
public abstract Data.Models.Metadata.ItemType ItemType { get; }
/// <summary>
/// Get the machine for a DatItem
/// </summary>
public Machine? Machine { get; set; }
#endregion
#region Logging
@@ -101,13 +101,6 @@ namespace SabreTools.Metadata.DatItems
#region Accessors
/// <summary>
/// Get the machine for a DatItem
/// </summary>
/// <returns>Machine if available, null otherwise</returns>
/// <remarks>Relies on <see cref="MachineKey"/></remarks>
public Machine? GetMachine() => Read<Machine>(MachineKey);
/// <summary>
/// Gets the name to use for a DatItem
/// </summary>
@@ -137,11 +130,10 @@ namespace SabreTools.Metadata.DatItems
public void CopyMachineInformation(DatItem item)
{
// If there is no machine
if (!item._internal.ContainsKey(MachineKey))
if (item.Machine is null)
return;
var machine = item.GetMachine();
CopyMachineInformation(machine);
CopyMachineInformation(item.Machine);
}
/// <summary>
@@ -154,7 +146,7 @@ namespace SabreTools.Metadata.DatItems
return;
if (machine.Clone() is Machine cloned)
Write(MachineKey, cloned);
Machine = cloned;
}
#endregion
@@ -245,7 +237,7 @@ namespace SabreTools.Metadata.DatItems
/// <returns>True if the item and its machine passes the filter, false otherwise</returns>
public bool PassesFilter(FilterRunner filterRunner)
{
var machine = GetMachine();
var machine = Machine;
if (machine is not null && !machine.PassesFilter(filterRunner))
return false;

View File

@@ -25,7 +25,7 @@ namespace SabreTools.Metadata.DatItems
_internal = new T();
SetName(string.Empty);
Write(MachineKey, new Machine());
Machine = new Machine();
}
/// <summary>
@@ -35,7 +35,7 @@ namespace SabreTools.Metadata.DatItems
{
_internal = item;
Write(MachineKey, new Machine());
Machine = new Machine();
}
#endregion

View File

@@ -130,7 +130,7 @@ namespace SabreTools.Metadata.DatItems.Formats
}
rom.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
rom.Write(MachineKey, GetMachine()?.Clone() as Machine);
rom.Machine = Machine?.Clone() as Machine;
rom.Write(Rom.PartKey, Read<Part>(PartKey)?.Clone() as Part);
rom.Write(RemoveKey, ReadBool(RemoveKey));
rom.Write<Source?>(SourceKey, Read<Source?>(SourceKey)?.Clone() as Source);

View File

@@ -121,7 +121,7 @@ namespace SabreTools.Metadata.DatItems.Formats
Format = this.Format,
};
file.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
file.Write(MachineKey, GetMachine()!.Clone() as Machine ?? new Machine());
file.Machine = Machine!.Clone() as Machine ?? new Machine();
file.Write(RemoveKey, ReadBool(RemoveKey));
file.Write<Source?>(SourceKey, Read<Source?>(SourceKey));
@@ -144,7 +144,7 @@ namespace SabreTools.Metadata.DatItems.Formats
rom.Write<string?>(Data.Models.Metadata.Rom.SHA256Key, SHA256);
rom.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
rom.Write(MachineKey, GetMachine()?.Clone() as Machine);
rom.Machine = Machine?.Clone() as Machine;
rom.Write(RemoveKey, ReadBool(RemoveKey));
rom.Write<Source?>(SourceKey, Read<Source?>(SourceKey));

View File

@@ -68,7 +68,7 @@ namespace SabreTools.Metadata.DatItems.Formats
var rom = new Rom(_internal.ConvertToRom()!);
rom.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
rom.Write(MachineKey, GetMachine());
rom.Machine = Machine?.Clone() as Machine;
rom.Write(RemoveKey, ReadBool(RemoveKey));
rom.Write<Source?>(SourceKey, Read<Source?>(SourceKey));