using Penumbra.GameData.Interop; namespace CustomizePlus.GameData.Data; /// /// A single actor with its label and the list of associated game objects. /// public readonly struct ActorData { public readonly List Objects; public readonly string Label; public bool Valid => Objects.Count > 0; public ActorData(Actor actor, string label) { Objects = new List { actor }; Label = label; } public static readonly ActorData Invalid = new(false); private ActorData(bool _) { Objects = new List(0); Label = string.Empty; } /*public LazyString ToLazyString(string invalid) { var objects = Objects; return Valid ? new LazyString(() => string.Join(", ", objects.Select(o => o.ToString()))) : new LazyString(() => invalid); }*/ private ActorData(List objects, string label) { Objects = objects; Label = label; } public ActorData OnlyGPose() => new(Objects.Where(o => o.IsGPoseOrCutscene).ToList(), Label); }