using System; using System.Collections.Generic; using System.IO; using CustomizePlus.Armatures.Data; using CustomizePlus.Core.Data; using CustomizePlus.Core.Extensions; using CustomizePlus.Core.Services; using CustomizePlus.Profiles.Enums; using CustomizePlus.Templates; using CustomizePlus.Templates.Data; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using OtterGui.Classes; using Penumbra.GameData.Actors; namespace CustomizePlus.Profiles.Data; /// /// Encapsulates the user-controlled aspects of a character profile, ie all of /// the information that gets saved to disk by the plugin. /// public sealed class Profile : ISavable { public const int Version = 5; private static int _nextGlobalId; private readonly int _localId; public List Armatures = new(); [Obsolete("To be removed in the future versions")] public LowerString CharacterName { get; set; } = LowerString.Empty; public ActorIdentifier Character { get; set; } = ActorIdentifier.Invalid; public bool ApplyToCurrentlyActiveCharacter { get; set; } public LowerString Name { get; set; } = LowerString.Empty; /// /// Whether to search only through local player owned characters or all characters when searching for game object by name /// //public bool LimitLookupToOwnedObjects { get; set; } = false; public bool Enabled { get; set; } public DateTimeOffset CreationDate { get; set; } = DateTime.UtcNow; public DateTimeOffset ModifiedDate { get; set; } = DateTime.UtcNow; public Guid UniqueId { get; set; } = Guid.NewGuid(); public List