From 319a87052245c9c54e10080127240df6d2f77819 Mon Sep 17 00:00:00 2001 From: Arnaud Jamin Date: Sun, 9 Feb 2025 16:44:10 -0500 Subject: [PATCH] CogEngine: Levels window: Remove the loading of assets by default. --- .../Private/CogEngineWindow_Levels.cpp | 31 +++++++------------ .../CogEngine/Public/CogEngineWindow_Levels.h | 2 ++ 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Levels.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Levels.cpp index 9218214..a8a6d1d 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Levels.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Levels.cpp @@ -17,22 +17,16 @@ void FCogEngineWindow_Levels::Initialize() bHasMenu = true; Config = GetConfig(); - GetAllLevels(UnsortedLevels); - - RefreshSorting(); } //-------------------------------------------------------------------------------------------------------------------------- void FCogEngineWindow_Levels::GetAllLevels(TArray& OutLevels) { const FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked("AssetRegistry"); - IAssetRegistry& AssetRegistry = AssetRegistryModule.Get(); - - AssetRegistry.SearchAllAssets(true); + const IAssetRegistry& AssetRegistry = AssetRegistryModule.Get(); FARFilter AssetFilter; AssetFilter.ClassPaths.Add(UWorld::StaticClass()->GetClassPathName()); - AssetFilter.bRecursiveClasses = true; AssetRegistry.GetAssets(AssetFilter, OutLevels); @@ -48,11 +42,11 @@ void FCogEngineWindow_Levels::RefreshSorting() { if (Config->ShowPath) { - Levels.Sort([](const FAssetData& InA, const FAssetData& InB) { return InA.PackagePath.Compare(InB.PackagePath) < 0; }); + Levels.Sort([](const auto& InA, const auto& InB) { return InA.PackagePath.Compare(InB.PackagePath) < 0; }); } else { - Levels.Sort([](const FAssetData& InA, const FAssetData& InB) { return InA.AssetName.Compare(InB.AssetName) < 0; }); + Levels.Sort([](const auto& InA, const auto& InB) { return InA.AssetName.Compare(InB.AssetName) < 0; }); } } } @@ -88,6 +82,13 @@ void FCogEngineWindow_Levels::RenderContent() { Super::RenderContent(); + if (HasGatheredLevels == false) + { + GetAllLevels(UnsortedLevels); + RefreshSorting(); + HasGatheredLevels = true; + } + RenderMenu(); const float FooterHeight = ImGui::GetFrameHeightWithSpacing(); @@ -133,15 +134,7 @@ void FCogEngineWindow_Levels::RenderContent() //-------------------------------------------------------------------------------------------------------------------------- void FCogEngineWindow_Levels::RenderLevel(int32 InIndex, const FAssetData& InAsset) { - FString Label; - if (Config->ShowPath) - { - Label = InAsset.PackageName.ToString(); - } - else - { - Label = InAsset.AssetName.ToString(); - } + const FString Label = Config->ShowPath ? InAsset.PackageName.ToString() : InAsset.AssetName.ToString(); const auto LabelStr = StringCast(*Label); if (Filter.PassFilter(LabelStr.Get()) == false) @@ -156,7 +149,7 @@ void FCogEngineWindow_Levels::RenderLevel(int32 InIndex, const FAssetData& InAss } } - ImGui::SetItemTooltip(StringCast(*InAsset.PackagePath.ToString()).Get()); + ImGui::SetItemTooltip(StringCast(*InAsset.PackageName.ToString()).Get()); RenderLevelContextMenu(InIndex, InAsset); } diff --git a/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Levels.h b/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Levels.h index 7201231..1ad36be 100644 --- a/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Levels.h +++ b/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Levels.h @@ -38,6 +38,8 @@ private: TArray UnsortedLevels; + bool HasGatheredLevels = false; + int32 SelectedIndex = -1; TObjectPtr Config = nullptr;