From 615a5796f0af2f28fa8f7cd47bc56c0e24384107 Mon Sep 17 00:00:00 2001 From: Xiao Qi Date: Tue, 7 Mar 2023 22:51:40 +0800 Subject: [PATCH] Added line to add subasset meta to parent asset Rewrote loading of all animation clips into resource manager --- SHADE_Engine/src/Assets/SHAssetManager.cpp | 1 + .../SHRawAnimInspector.cpp | 21 +++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) 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)); + } } }