diff --git a/SHADE_Engine/src/Assets/SHAssetManager.cpp b/SHADE_Engine/src/Assets/SHAssetManager.cpp index 5ad2bbd4..3763d491 100644 --- a/SHADE_Engine/src/Assets/SHAssetManager.cpp +++ b/SHADE_Engine/src/Assets/SHAssetManager.cpp @@ -308,6 +308,7 @@ namespace SHADE auto& newClip {animContainer->clips.emplace_back()}; newClip.name = name; assetCollection.emplace(id, asset); + assetCollection[parent].subAssets.push_back(&assetCollection[id]); assetData.emplace(id, &newClip); return id; } diff --git a/SHADE_Engine/src/Editor/EditorWindow/RawAnimationInspector/SHRawAnimInspector.cpp b/SHADE_Engine/src/Editor/EditorWindow/RawAnimationInspector/SHRawAnimInspector.cpp index e4b7f94d..b795b1fa 100644 --- a/SHADE_Engine/src/Editor/EditorWindow/RawAnimationInspector/SHRawAnimInspector.cpp +++ b/SHADE_Engine/src/Editor/EditorWindow/RawAnimationInspector/SHRawAnimInspector.cpp @@ -249,13 +249,26 @@ namespace SHADE { std::vector> animClips; - const auto ALL_ANIM_CLIPS = SHAssetManager::GetAllRecordOfType(AssetType::ANIM_CLIP); - for (auto asset : ALL_ANIM_CLIPS) + //const auto ALL_ANIM_CLIPS = SHAssetManager::GetAllRecordOfType(AssetType::ANIM_CLIP); + //for (auto asset : ALL_ANIM_CLIPS) + //{ + // const SHAnimClipAsset* ANIM_CLIP = SHAssetManager::GetData(asset.id); + // if (ANIM_CLIP->animRawDataAssetId == rawAnimId) + // { + // animClips.emplace_back(SHResourceManager::LoadOrGet(asset.id)); + // } + //} + + const auto ALL_ANIM_CLIPS = SHAssetManager::GetAllRecordOfType(AssetType::ANIM_CONTAINER); + for (auto const& asset : ALL_ANIM_CLIPS) { - const SHAnimClipAsset* ANIM_CLIP = SHAssetManager::GetData(asset.id); + auto const ANIM_CLIP {SHAssetManager::GetData(asset.id)}; if (ANIM_CLIP->animRawDataAssetId == rawAnimId) { - animClips.emplace_back(SHResourceManager::LoadOrGet(asset.id)); + for (auto const& subAsset : asset.subAssets) + { + animClips.emplace_back(SHResourceManager::LoadOrGet(subAsset->id)); + } } }