// Copyright Epic Games, Inc. All Rights Reserved. #include "RenderGridDeveloperLibrary.h" #include "AssetRegistry/AssetData.h" #include "AssetRegistry/AssetRegistryModule.h" #include "AssetRegistry/IAssetRegistry.h" #include "Blueprints/RenderGridBlueprint.h" #include "RenderGrid/RenderGrid.h" TArray URenderGridDeveloperLibrary::GetAllRenderGridBlueprintAssets() { FARFilter Filter; Filter.bIncludeOnlyOnDiskAssets = false; Filter.ClassPaths = {URenderGridBlueprint::StaticClass()->GetClassPathName()}; Filter.bRecursivePaths = true; TArray AssetsData; IAssetRegistry& AssetRegistry = FModuleManager::Get().LoadModuleChecked(TEXT("AssetRegistry")).Get(); AssetRegistry.GetAssets(Filter, AssetsData); TArray Result; for (const FAssetData& AssetData : AssetsData) { if (URenderGridBlueprint* RenderGridBlueprint = Cast(AssetData.GetAsset()); IsValid(RenderGridBlueprint)) { Result.Add(RenderGridBlueprint); } } return Result; } TArray URenderGridDeveloperLibrary::GetAllRenderGridAssets() { TArray Result; for (URenderGridBlueprint* RenderGridBlueprint : GetAllRenderGridBlueprintAssets()) { if (URenderGrid* RenderGrid = RenderGridBlueprint->GetRenderGridWithBlueprintGraph(); IsValid(RenderGrid)) { Result.Add(RenderGrid); } } return Result; } URenderGridBlueprint* URenderGridDeveloperLibrary::GetRenderGridBlueprintAsset(const FString& ObjectPath) { if (FSoftObjectPath AssetPath = FSoftObjectPath(ObjectPath); AssetPath.IsValid()) { if (URenderGridBlueprint* RenderGridBlueprint = Cast(AssetPath.TryLoad()); IsValid(RenderGridBlueprint)) { return RenderGridBlueprint; } } return nullptr; } URenderGrid* URenderGridDeveloperLibrary::GetRenderGridAsset(const FString& ObjectPath) { if (URenderGridBlueprint* RenderGridBlueprint = GetRenderGridBlueprintAsset(ObjectPath); IsValid(RenderGridBlueprint)) { if (URenderGrid* RenderGrid = RenderGridBlueprint->GetRenderGridWithBlueprintGraph(); IsValid(RenderGrid)) { return RenderGrid; } } return nullptr; }