// Copyright 2017-2021 marynate. All Rights Reserved.
#include "ExtAssetData.h"
#include "ExtContentBrowser.h"
#include "ExtContentBrowserSingleton.h"
#include "ExtPackageUtils.h"
#include "ExtContentBrowserUtils.h"
#include "SExtContentBrowser.h"
#include "SContentBrowserPathPicker.h"
#include "HAL/FileManager.h"
#include "Misc/ConfigCacheIni.h"
#include "Misc/PackageName.h"
#include "Misc/ScopedSlowTask.h"
#include "AssetRegistry/AssetRegistryState.h"
#include "AssetRegistry/AssetDataTagMap.h"
#include "Engine/AssetManager.h"
#include "Engine/Blueprint.h"
#include "Engine/UserDefinedStruct.h"
#include "Engine/UserDefinedEnum.h"
#include "AssetRegistry/ARFilter.h"
#include "ObjectTools.h"
#include "Blueprint/BlueprintSupport.h"
#include "Framework/Application/SlateApplication.h"
#include "ContentBrowserModule.h"
#include "UObject/UObjectIterator.h"
#include "HAL/RunnableThread.h"
#include "PackageTools.h"
#include "AssetToolsModule.h"
#include "FileHelpers.h"
#include "UObject/CoreRedirects.h"
#include "Misc/RedirectCollector.h"
#include "Serialization/ArchiveReplaceObjectRef.h"
#include "Engine/MapBuildDataRegistry.h"
#include "Engine/PrimaryAssetLabel.h"
#include "Async/Async.h"
#include "Interfaces/IMainFrameModule.h"
#include "CollectionManagerTypes.h"
#include "CollectionManagerModule.h"
#include "ICollectionManager.h"
#include "DesktopPlatformModule.h"
#include "FileUtilities/ZipArchiveWriter.h"
#include "HAL/PlatformFilemanager.h"
#include "Misc/FileHelper.h"
#include "CollectionManagerModule.h"
#include "InstancedReferenceSubobjectHelper.h"
#include "Kismet2/BlueprintEditorUtils.h"
#include "UObject/MetaData.h"
#include "IContentBrowserDataModule.h"
// Serialization
#include "AssetRegistry/AssetDataTagMapSerializationDetails.h"
#include "Serialization/LargeMemoryWriter.h"
#include "Serialization/ArchiveProxy.h"
#include "UObject/NameBatchSerialization.h"
#if ECB_WIP_IMPORT_FOLDER_COLOR_OVERRIDE
#include "AssetViewUtils.h"
#endif
// Drag and Drop
#include "Input/DragAndDrop.h"
#include "LevelEditorViewport.h"
#define LOCTEXT_NAMESPACE "ExtContentBrowser"
const FGuid FExtAssetRegistryVersion::GUID(0xDC449DF5, 0x817F4F19, 0x899A33C9, 0x0AB230B4);
FCustomVersionRegistration GRegisterExtAssetRegistryCustomVersion(FExtAssetRegistryVersion::GUID, FExtAssetRegistryVersion::LatestVersion, TEXT("ExtAssetRegistryVer"));
FString FExtAssetSupport::AssetPackageExtension = TEXT(".uasset");
FString FExtAssetSupport::MapPackageExtension = TEXT(".umap");
FString FExtAssetSupport::TextAssetPackageExtension = TEXT(".utxt");
FString FExtAssetSupport::TextMapPackageExtension = TEXT(".utxtmap");
namespace FPathsUtil
{
FString WithEndSlash(const FString& InPath)
{
FString PathWithEndSlash(InPath);
FPaths::NormalizeDirectoryName(PathWithEndSlash);
PathWithEndSlash.Append(TEXT("/"));
return PathWithEndSlash;
}
bool IsSubOrSamePath(const FString& InSubPath, const FString& InRootPath)
{
FString SubPath(InSubPath);
FPaths::NormalizeDirectoryName(SubPath);
FString RootPath(InRootPath);
FPaths::NormalizeDirectoryName(RootPath);
if (SubPath.Equals(RootPath))
{
return true;
}
RootPath.Append(TEXT("/"));
if (SubPath.StartsWith(RootPath))
{
return true;
}
return false;
}
bool IsFileInDir(const FString& InFile, const FString& InRootPath)
{
FString RootPath = WithEndSlash(InRootPath);
return (InFile.StartsWith(RootPath));
}
// return: num of paths been merged
int32 SortAndMergeDirs(const TArray<FString>& InPathsToCombine, TArray<FString>& OutCombinedPaths)
{
TArray<FString> PathsToCombine = InPathsToCombine;
PathsToCombine.Sort();
const int32 NumPaths = PathsToCombine.Num();
TArray<int32> IndicesToRemove;
for (int32 IndexA = 0; IndexA < NumPaths - 1; ++IndexA)
{
FString& A = PathsToCombine[IndexA];
for (int32 IndexB = NumPaths - 1; IndexB > IndexA; --IndexB)
{
if (IndicesToRemove.Contains(IndexB))
{
continue;
}
FString& B = PathsToCombine[IndexB];
//if (B.StartsWith(A, ESearchCase::IgnoreCase)) // todo: Mac -> Casesensitive
if (FPathsUtil::IsSubOrSamePath(B, A))
{
IndicesToRemove.Add(IndexB);
}
}
}
if (IndicesToRemove.Num() > 0)
{
for (int32 Index = 0; Index < IndicesToRemove.Num(); ++Index)
{
PathsToCombine.RemoveAt(IndicesToRemove[Index]);
}
}
OutCombinedPaths = PathsToCombine;
return IndicesToRemove.Num();
}
}
namespace FExtAssetCoreUtil
{
bool FExtAssetFeedbackContext::ReceivedUserCancel()
{
if (!bTaskWasCancelledCache)
{
bTaskWasCancelledCache = FExtFeedbackContextEditor::ReceivedUserCancel();
}
return bTaskWasCancelledCache;
}
///////////////////////////////////////////
FExtAssetWorkReporter::FExtAssetWorkReporter(const TSharedPtr<IExtAssetProgressReporter>& InReporter, const FText& InDescription, float InAmountOfWork, float InIncrementOfWork, bool bInterruptible)
: Reporter(InReporter)
, DefaultIncrementOfWork(InIncrementOfWork)
{
if (Reporter.IsValid())
{
Reporter->BeginWork(InDescription, InAmountOfWork, bInterruptible);
}
}
FExtAssetWorkReporter::~FExtAssetWorkReporter()
{
if (Reporter.IsValid())
{
Reporter->EndWork();
}
}
void FExtAssetWorkReporter::ReportNextStep(const FText& InMessage, float InIncrementOfWork)
{
if (Reporter.IsValid())
{
Reporter->ReportProgress(InIncrementOfWork, InMessage);
}
}
void FExtAssetWorkReporter::ReportNextStep(const FText& InMessage)
{
ReportNextStep(InMessage, DefaultIncrementOfWork);
}
bool FExtAssetWorkReporter::IsWorkCancelled() const
{
if (Reporter.IsValid())
{
return Reporter->IsWorkCancelled();
}
return false;
}
///////////////////////////////////////////
void FExtAssetProgressUIReporter::BeginWork(const FText& InTitle, float InAmountOfWork, bool bInterruptible/* = true*/)
{
ProgressTasks.Emplace(new FScopedSlowTask(InAmountOfWork, InTitle, true, FeedbackContext.IsValid() ? *FeedbackContext.Get() : *GWarn));
ProgressTasks.Last()->MakeDialog(bInterruptible);
}
void FExtAssetProgressUIReporter::EndWork()
{
if (ProgressTasks.Num() > 0)
{
ProgressTasks.Pop();
}
}
void FExtAssetProgressUIReporter::ReportProgress(float Progress, const FText& InMessage)
{
if (ProgressTasks.Num() > 0)
{
TSharedPtr<FScopedSlowTask>& ProgressTask = ProgressTasks.Last();
ProgressTask->EnterProgressFrame(Progress, InMessage);
}
}
bool FExtAssetProgressUIReporter::IsWorkCancelled()
{
if (!bIsCancelled && ProgressTasks.Num() > 0)
{
const TSharedPtr<FScopedSlowTask>& ProgressTask = ProgressTasks.Last();
bIsCancelled |= ProgressTask->ShouldCancel();
}
return bIsCancelled;
}
FFeedbackContext* FExtAssetProgressUIReporter::GetFeedbackContext() const
{
return FeedbackContext.IsValid() ? FeedbackContext.Get() : GWarn;
}
///////////////////////////////////////////
void FExtAssetProgressTextReporter::BeginWork(const FText& InTitle, float InAmountOfWork, bool bInterruptible/* = true*/)
{
ECB_LOG(Display, TEXT("Start: %s ..."), *InTitle.ToString());
++TaskDepth;
}
void FExtAssetProgressTextReporter::EndWork()
{
if (TaskDepth > 0)
{
--TaskDepth;
}
}
void FExtAssetProgressTextReporter::ReportProgress(float Progress, const FText& InMessage)
{
if (TaskDepth > 0)
{
ECB_LOG(Display, TEXT("Doing %s ..."), *InMessage.ToString());
}
}
bool FExtAssetProgressTextReporter::IsWorkCancelled()
{
return false;
}
FFeedbackContext* FExtAssetProgressTextReporter::GetFeedbackContext() const
{
return FeedbackContext.Get();
}
}
////////////////////////////////////////////////////
// FExtConfigUtil
//
struct FExtConfigUtil
{
static FString GetConfigDirByContentRoot(const FString& InAssetContentRoot)
{
static FString EmptyString("");
FString ConfigDir = InAssetContentRoot / TEXT("../Saved/Config/") / ANSI_TO_TCHAR(FPlatformProperties::PlatformName());
FPaths::CollapseRelativeDirectories(ConfigDir);
if (IFileManager::Get
没有合适的资源?快使用搜索试试~ 我知道了~
UE4/5资产管理插件 UAssetBrowser
共530个文件
h:219个
cpp:183个
png:75个
需积分: 0 32 下载量 134 浏览量
2023-10-11
12:29:07
上传
评论
收藏 119.96MB ZIP 举报
温馨提示
UE4/5资产管理插件 UAssetBrowser
资源推荐
资源详情
资源评论
收起资源包目录
UE4/5资产管理插件 UAssetBrowser (530个子文件)
UAssetBrowser.7z 15.59MB
UAssetBrowser.7z 15.11MB
UAssetBrowser.7z 14.31MB
UAssetBrowser.7z 11.97MB
ExtAssetData.cpp 271KB
ExtAssetData.cpp 268KB
ExtAssetData.cpp 268KB
SExtAssetView.cpp 166KB
SExtAssetView.cpp 166KB
SExtAssetView.cpp 166KB
SExtContentBrowser.cpp 155KB
SExtContentBrowser.cpp 155KB
SExtContentBrowser.cpp 155KB
ExtContentBrowserSettings.gen.cpp 101KB
ExtContentBrowserSettings.gen.cpp 101KB
ExtContentBrowserSettings.gen.cpp 99KB
ExtContentBrowserSettings.gen.cpp 99KB
ExtContentBrowserSettings.gen.cpp 99KB
ExtContentBrowserSettings.gen.cpp 99KB
ExtContentBrowserUtils.cpp 73KB
ExtContentBrowserUtils.cpp 73KB
ExtContentBrowserUtils.cpp 73KB
AssetContextMenu.cpp 69KB
AssetContextMenu.cpp 69KB
AssetContextMenu.cpp 69KB
ExtAssetViewWidgets.cpp 65KB
ExtAssetViewWidgets.cpp 65KB
ExtAssetViewWidgets.cpp 65KB
SExtPathView.cpp 62KB
SExtPathView.cpp 62KB
SExtPathView.cpp 62KB
ExtAssetThumbnail.cpp 55KB
SExtDependencyViewer.cpp 54KB
SExtDependencyViewer.cpp 54KB
SExtDependencyViewer.cpp 54KB
ExtAssetThumbnail.cpp 53KB
ExtAssetThumbnail.cpp 53KB
ExtPackageUtils.cpp 48KB
ExtPackageUtils.cpp 48KB
ExtPackageUtils.cpp 48KB
SExtFilterList.cpp 47KB
SExtFilterList.cpp 44KB
SExtFilterList.cpp 44KB
UDNParser.cpp 44KB
UDNParser.cpp 44KB
UDNParser.cpp 44KB
PathContextMenu.cpp 36KB
PathContextMenu.cpp 36KB
PathContextMenu.cpp 36KB
ExtFrontendFilters.cpp 36KB
ExtFrontendFilters.cpp 36KB
ExtFrontendFilters.cpp 36KB
ExtPackageReader.cpp 33KB
ExtContentBrowserBlueprintLibrary.gen.cpp 32KB
ExtContentBrowserBlueprintLibrary.gen.cpp 32KB
ExtContentBrowserBlueprintLibrary.gen.cpp 30KB
ExtContentBrowserBlueprintLibrary.gen.cpp 30KB
ExtContentBrowserBlueprintLibrary.gen.cpp 30KB
ExtContentBrowserBlueprintLibrary.gen.cpp 30KB
ExtPackageReader.cpp 29KB
ExtPackageReader.cpp 29KB
ExtContentBrowserTypes.gen.cpp 29KB
ExtContentBrowserTypes.gen.cpp 29KB
ExtContentBrowserTypes.gen.cpp 29KB
ExtContentBrowserTypes.gen.cpp 29KB
ExtContentBrowserTypes.gen.cpp 29KB
ExtContentBrowserTypes.gen.cpp 29KB
ExtContentBrowserSingleton.cpp 28KB
ExtContentBrowserSingleton.cpp 28KB
ExtContentBrowserSingleton.cpp 28KB
ExtSourcesViewWidgets.cpp 25KB
ExtSourcesViewWidgets.cpp 25KB
ExtSourcesViewWidgets.cpp 25KB
EdGraph_ExtDependencyViewer.cpp 19KB
EdGraph_ExtDependencyViewer.cpp 19KB
EdGraph_ExtDependencyViewer.cpp 19KB
ExtFeedbackContextEditor.cpp 19KB
ExtFeedbackContextEditor.cpp 19KB
ExtFeedbackContextEditor.cpp 19KB
AssetViewSortManager.cpp 18KB
AssetViewSortManager.cpp 18KB
AssetViewSortManager.cpp 18KB
ExtAssetData.gen.cpp 14KB
ExtContentBrowserMenuContexts.gen.cpp 14KB
ExtAssetData.gen.cpp 14KB
ExtContentBrowserMenuContexts.gen.cpp 14KB
ExtAssetData.gen.cpp 13KB
ExtAssetData.gen.cpp 13KB
ExtAssetData.gen.cpp 13KB
ExtAssetData.gen.cpp 13KB
SExtDocumentationToolTip.cpp 13KB
SExtDocumentationToolTip.cpp 13KB
SExtDocumentationToolTip.cpp 13KB
ExtContentBrowserMenuContexts.gen.cpp 12KB
ExtContentBrowserMenuContexts.gen.cpp 12KB
ExtContentBrowserMenuContexts.gen.cpp 12KB
ExtContentBrowserMenuContexts.gen.cpp 12KB
DocumentationStyle.cpp 10KB
DocumentationStyle.cpp 10KB
DocumentationStyle.cpp 10KB
共 530 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
HoChin_
- 粉丝: 42
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功