mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Fix consistency issues in converting to metadata
This commit is contained in:
@@ -54,6 +54,7 @@ namespace SabreTools.DatItems.Formats
|
||||
#region Constructors
|
||||
|
||||
public Configuration() : base() { }
|
||||
|
||||
public Configuration(Models.Metadata.Configuration item) : base(item)
|
||||
{
|
||||
// Handle subitems
|
||||
@@ -77,5 +78,35 @@ namespace SabreTools.DatItems.Formats
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Models.Metadata.Configuration GetInternalClone()
|
||||
{
|
||||
var configurationItem = base.GetInternalClone();
|
||||
|
||||
var condition = GetFieldValue<Condition?>(Models.Metadata.Configuration.ConditionKey);
|
||||
if (condition != null)
|
||||
configurationItem[Models.Metadata.Configuration.ConditionKey] = condition.GetInternalClone();
|
||||
|
||||
var confLocations = GetFieldValue<ConfLocation[]?>(Models.Metadata.Configuration.ConfLocationKey);
|
||||
if (confLocations != null)
|
||||
{
|
||||
Models.Metadata.ConfLocation[] confLocationItems = Array.ConvertAll(confLocations, confLocation => confLocation.GetInternalClone());
|
||||
configurationItem[Models.Metadata.Configuration.ConfLocationKey] = confLocationItems;
|
||||
}
|
||||
|
||||
var confSettings = GetFieldValue<ConfSetting[]?>(Models.Metadata.Configuration.ConfSettingKey);
|
||||
if (confSettings != null)
|
||||
{
|
||||
Models.Metadata.ConfSetting[] confSettingItems = Array.ConvertAll(confSettings, confSetting => confSetting.GetInternalClone());
|
||||
configurationItem[Models.Metadata.Configuration.ConfSettingKey] = confSettingItems;
|
||||
}
|
||||
|
||||
return configurationItem;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user