using System.Xml.Serialization; using Newtonsoft.Json; using SabreTools.Core.Tools; namespace SabreTools.DatItems.Formats { /// /// Represents one part feature object /// [JsonObject("part_feature"), XmlRoot("part_feature")] public sealed class PartFeature : DatItem { #region Constants /// /// Non-standard key for inverted logic /// public const string PartKey = "PART"; #endregion #region Fields /// /> protected override ItemType ItemType => ItemType.PartFeature; /// /> protected override string? NameKey => Models.Metadata.Feature.NameKey; #endregion #region Constructors public PartFeature() : base() { } public PartFeature(Models.Metadata.Feature item) : base(item) { // Process flag values if (GetStringFieldValue(Models.Metadata.Feature.OverallKey) != null) SetFieldValue(Models.Metadata.Feature.OverallKey, GetStringFieldValue(Models.Metadata.Feature.OverallKey).AsEnumValue().AsStringValue()); if (GetStringFieldValue(Models.Metadata.Feature.StatusKey) != null) SetFieldValue(Models.Metadata.Feature.StatusKey, GetStringFieldValue(Models.Metadata.Feature.StatusKey).AsEnumValue().AsStringValue()); if (GetStringFieldValue(Models.Metadata.Feature.FeatureTypeKey) != null) SetFieldValue(Models.Metadata.Feature.FeatureTypeKey, GetStringFieldValue(Models.Metadata.Feature.FeatureTypeKey).AsEnumValue().AsStringValue()); } #endregion } }