| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | // Copyright 2017-2021 marynate. All Rights Reserved.#pragma once#include "ExtAssetData.h"#include "UObject/ObjectMacros.h"#include "Misc/ObjectThumbnail.h"struct FExtAssetData;/** * Helper functions to deal with packages and directories */struct FExtPackageUtils{public:	/** Parse and gather external asset data */	static bool ParsePackageWithPackageReader(FExtAssetData& OutExtAssetData);	/** Load thumbnail from external asset */	static bool LoadThumbnailWithPackageReader(const FExtAssetData& InExtAssetData, FObjectThumbnail& InOutThumbnail);#if ECB_LEGACY	/** Parse and gather external asset data */	static bool ParsePackage(FExtAssetData& OutExtAssetData);	/** Load thumbnail from external asset */	static bool LoadThumbnail(const FExtAssetData& InExtAssetData, FObjectThumbnail& OutThumbnail);	/** Load soft references */	static void LoadSoftReferences(const FExtAssetData& InExtAssetData, TArray<FName>& OutSoftPackageReferenceList);#endif	/** Unload package by file path */	static void UnloadPackage(const TArray<FString>& InFilePaths, TArray<UPackage*>* OutUnloadPackage = nullptr);	/** Get all child directories of input base directory */	static void GetDirectories(const FString& InBaseDirectory, TArray<FString>& OutPathList);	/** Get all child directories of input base directory */	static void GetDirectoriesRecursively(const FString& InBaseDirectory, TArray<FString>& OutPathList);	/** Get all packages' full file path in input root directory, recursively if asked */	static void GetAllPackages(const FString& InRootDirectory, TArray<FString>& OutPathList, bool bResursively);	/** Get all packages' full file path in input root directory, recursively if asked */	static void GetAllPackages(const FName& InRootDirectory, TArray<FName>& OutPathList);	/** Check if input directory contains any valid package */	static bool HasPackages(const FString& InDirectory, bool bResursively);	/** Check if a package exist */	static bool DoesPackageExist(const FString PackageName);private:	/**	Writes information about the linker to the log. */	static void GeneratePackageReport(class FLinkerLoad* InLinker, uint32 InInfoFlags, bool bInHideOffsets);#if ECB_LEGACY	/** Loads thumbnails from the specified package file name */	static bool LoadThumbnailsFromPackage(const FString& InPackageFileName, const TSet< FName >& InObjectFullNames, FThumbnailMap& InOutThumbnails);	/** Loads thumbnails from a package unless they're already cached in that package's thumbnail map */	static bool ConditionallyLoadThumbnailsFromPackage(const FString& InPackageFileName, const TSet< FName >& InObjectFullNames, FThumbnailMap& InOutThumbnails);#endif};
 |