using Newtonsoft.Json; using System.ComponentModel; using UAssetAPI.UnrealTypes; namespace UAssetAPI.Kismet.Bytecode { /// /// Represents a Kismet bytecode pointer to an FProperty or FField. /// [JsonObject(MemberSerialization.OptIn)] public class KismetPropertyPointer { public static readonly UE4Version XFER_PROP_POINTER_SWITCH_TO_SERIALIZING_AS_FIELD_PATH_VERSION = UE4Version.VER_UE4_ADDED_PACKAGE_OWNER; /// /// The pointer serialized as an FPackageIndex. Used in versions older than . /// [JsonProperty] [DefaultValue(null)] public FPackageIndex Old; /// /// The pointer serialized as an FFieldPath. Used in versions newer than . /// [JsonProperty] [DefaultValue(null)] public FFieldPath New; public bool ShouldSerializeOld() { return Old != null; } public bool ShouldSerializeNew() { return New != null; } public KismetPropertyPointer(FPackageIndex older) { Old = older; } public KismetPropertyPointer(FFieldPath newer) { New = newer; } public KismetPropertyPointer() { } } }