diff --git a/Penumbra/Collections/Manager/ActiveCollections.cs b/Penumbra/Collections/Manager/ActiveCollections.cs index 7b99b320..2ec3a33b 100644 --- a/Penumbra/Collections/Manager/ActiveCollections.cs +++ b/Penumbra/Collections/Manager/ActiveCollections.cs @@ -33,6 +33,7 @@ public class ActiveCollections : ISavable, IDisposable Individuals = new IndividualCollections(actors.AwaitedService); _communicator.CollectionChange.Subscribe(OnCollectionChange); LoadCollections(); + UpdateCurrentCollectionInUse(); } public void Dispose() diff --git a/Penumbra/Interop/ResourceTree/ResourceTree.cs b/Penumbra/Interop/ResourceTree/ResourceTree.cs index e0cb1a95..2cec991d 100644 --- a/Penumbra/Interop/ResourceTree/ResourceTree.cs +++ b/Penumbra/Interop/ResourceTree/ResourceTree.cs @@ -6,6 +6,7 @@ using FFXIVClientStructs.FFXIV.Client.Graphics.Scene; using Penumbra.GameData.Enums; using Penumbra.GameData.Structs; using Penumbra.Interop.Structs; +using CustomizeData = FFXIVClientStructs.FFXIV.Client.Game.Character.CustomizeData; namespace Penumbra.Interop.ResourceTree; @@ -17,6 +18,10 @@ public class ResourceTree public readonly string CollectionName; public readonly List Nodes; + public int ModelId; + public CustomizeData CustomizeData; + public GenderRace RaceCode; + public ResourceTree(string name, nint sourceAddress, bool playerRelated, string collectionName) { Name = name; @@ -32,6 +37,9 @@ public class ResourceTree var model = (CharacterBase*)character->GameObject.GetDrawObject(); var equipment = new ReadOnlySpan(character->EquipSlotData, 10); // var customize = new ReadOnlySpan( character->CustomizeData, 26 ); + ModelId = character->ModelCharaId; + CustomizeData = character->DrawData.CustomizeData; + RaceCode = model->GetModelType() == CharacterBase.ModelType.Human ? (GenderRace) ((Human*)model)->RaceSexId : GenderRace.Unknown; for (var i = 0; i < model->SlotCount; ++i) {