More MCP work

This commit is contained in:
2026-03-08 21:28:47 -04:00
parent 93d4ed2038
commit 695de53b30
19 changed files with 388 additions and 546 deletions

View File

@@ -14,6 +14,7 @@
MCPAssetsBase::MCPAssetsBase(UClass* InTargetClass)
: TargetClass(InTargetClass)
{
Scans.Add(InTargetClass);
}
MCPAssetsBase& MCPAssetsBase::Exact(const FString& InName)
@@ -62,10 +63,8 @@ bool MCPAssetsBase::Info()
IAssetRegistry& AR = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry").Get();
while (AR.IsLoadingAssets()) FPlatformProcess::Sleep(0.1f);
FARFilter Filter;
TArray<FAssetData> Candidates;
ConfigureFilterClassPaths(Filter);
AR.GetAssets(Filter, Candidates);
AR.GetAssets(ConfigureFilter(), Candidates);
for (const FAssetData &Data : Candidates)
{
if (AssetMatches(Data)) AssetResults.Add(Data);
@@ -117,22 +116,17 @@ bool MCPAssetsBase::Load()
return true;
}
void MCPAssetsBase::ConfigureFilterClassPaths(FARFilter &Filter)
FARFilter MCPAssetsBase::ConfigureFilter()
{
if (Classes.IsEmpty())
{
Filter.ClassPaths.Add(TargetClass->GetClassPathName());
}
else
{
for (UClass* C : Classes) Filter.ClassPaths.Add(C->GetClassPathName());
}
FARFilter Filter;
for (UClass* C : Scans) Filter.ClassPaths.Add(C->GetClassPathName());
Filter.bRecursiveClasses = !bNoDerived;
if (!bAllContent)
{
Filter.PackagePaths.Add(FName(TEXT("/Game")));
Filter.bRecursivePaths = true;
}
return Filter;
}
bool MCPAssetsBase::AssetMatches(const FAssetData &Asset)