mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-09-24 07:45:06 +00:00
Make Machine inherent to DatItem instead of passing through
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user