Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class FPakFileVisitor : public IPlatformFile::FDirectoryVisitor
- {
- public:
- virtual bool Visit(const TCHAR* FilenameOrDirectory, bool bIsDirectory) override
- {
- if (!bIsDirectory)
- {
- Files.Add(FilenameOrDirectory);
- }
- return true;
- }
- TArray<FString> Files;
- };
- void AModProjectCharacter::LoadPak2()
- {
- NLOG(FString::Printf(TEXT("%sPaks/%s-"), *FPaths::ProjectContentDir(), FApp::GetProjectName()));
- NLOG(FString::Printf(TEXT("%s, %s, %s, %s"), *FPaths::ProjectContentDir(), *FPaths::EngineContentDir(), *FPaths::ProjectSavedDir(), *FPaths::ProjectPersistentDownloadDir()));
- NLOG(FString::Printf(TEXT("RootDir: %s"), *FPaths::RootDir()));
- if (!FCoreDelegates::OnMountPak.IsBound())
- {
- NLOG(FString::Printf(TEXT("OnMountPak not bound")));
- return;
- }
- FString PakLocation = TEXT("D:\\Models\\CubeBrush\\AMilPak\\WindowsNoEditor\\MilitaryVOL1\\Content\\Paks\\MilitaryVOL1-WindowsNoEditor.pak");
- FPakFileVisitor Visitor;
- if (FCoreDelegates::OnMountPak.Execute(PakLocation, INDEX_NONE, &Visitor))
- {
- NLOG(FString::Printf(TEXT("Mounted with %i files (PakFile: %s)"), Visitor.Files.Num(), *PakLocation));
- for (const FString& InternalPakFileName : Visitor.Files)
- {
- //NLOG(FString::Printf(TEXT("\t\tVISIT: %s"), *InternalPakFileName));
- }
- //LogAllAssetsWithClass(UStaticMesh::StaticClass());
- //LogAllAssets();
- LogAllMountedPaks();
- LogAllMountedPaksWithFiles();
- FString StandardFilename("/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a");
- FPaths::MakeStandardFilename(StandardFilename);
- NLOG(FString::Printf(TEXT("StandardFilename: %s, %s"), *StandardFilename, *FPaths::GetPath(StandardFilename)));
- // BOTH BELOW WORK:
- TryToStream("/Game/Geometry/Meshes/1M_Cube.1M_Cube");
- TryToStream("/Game/Geometry/Meshes/1M_Cube");
- TryToLoadStatic("StaticMesh'/Game/Geometry/Meshes/1M_Cube.1M_Cube'");
- TryToStream("/Game/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../../MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../../MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../../Game/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../Game/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../Game/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../../Game/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../Game/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../Game/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../../Game/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../Game/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../Game/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../../Game/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../Game/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../Game/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Game/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../../MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../../MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../../Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../../Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../../Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/../Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToStream("/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a");
- TryToLoadStatic("StaticMesh'/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/MilitaryVOL1/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/MilitaryVOL1/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/Content/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- TryToLoadStatic("StaticMesh'/Military_VOL1_Tents/Meshes/SM_Tent_01a.SM_Tent_01a'");
- }
- else
- {
- NLOG(FString::Printf(TEXT("OnMountPak failed execute")));
- }
- }
- void AModProjectCharacter::LogAllAssetsWithClass(const UClass *Class)
- {
- // https://docs.unrealengine.com/en-US/Programming/Assets/Registry/index.html
- FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry");
- TArray<FAssetData> AssetData;
- AssetRegistryModule.Get().GetAssetsByClass(Class->GetFName(), AssetData);
- NLOG("");
- for (auto Asset : AssetData)
- {
- FString AssName;
- Asset.GetFullName(AssName);
- NLOG(FString::Printf(TEXT("\t\tAssName: %s"), *AssName));
- }
- }
- void AModProjectCharacter::LogAllAssets()
- {
- FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry");
- /*TArray<FString> ScanPaths;
- ScanPaths.Add("/");
- AssetRegistryModule.Get().ScanPathsSynchronous(ScanPaths, true);*/
- TArray<FAssetData> AssetData;
- AssetRegistryModule.Get().GetAllAssets(AssetData);
- NLOG("");
- for (auto Asset : AssetData)
- {
- FString AssName;
- Asset.GetFullName(AssName);
- NLOG(FString::Printf(TEXT("\t\tAssName: %s"), *AssName));
- }
- }
- void AModProjectCharacter::LogAllMountedPaks()
- {
- FPakPlatformFile* PakPlatformFile = (FPakPlatformFile*)(FPlatformFileManager::Get().FindPlatformFile(TEXT("PakFile")));
- if (!PakPlatformFile)
- return;
- TArray<FString> MountedPakFiles;
- PakPlatformFile->GetMountedPakFilenames(MountedPakFiles);
- NLOG("");
- for (auto PakFileName : MountedPakFiles)
- {
- FString PakFilePathFull = FPaths::ConvertRelativePathToFull(PakFileName);
- FPakFile PakFile(PakPlatformFile, *PakFilePathFull, false);
- NLOG(FString::Printf(TEXT("\t\tMounted Pak: %s, PakFilePathFull: %s"), *PakFileName, *PakFilePathFull));
- NLOG(FString::Printf(TEXT("\t\tMountPoint: %s"), *PakFile.GetMountPoint()));
- }
- }
- void AModProjectCharacter::LogAllMountedPaksWithFiles()
- {
- FPakPlatformFile* PakPlatformFile = (FPakPlatformFile*)(FPlatformFileManager::Get().FindPlatformFile(TEXT("PakFile")));
- if (!PakPlatformFile)
- return;
- TArray<FString> MountedPakFiles;
- PakPlatformFile->GetMountedPakFilenames(MountedPakFiles);
- NLOG("");
- for (auto PakFileName : MountedPakFiles)
- {
- FString PakFilePathFull = FPaths::ConvertRelativePathToFull(PakFileName);
- FPakFile PakFile(PakPlatformFile, *PakFilePathFull, false);
- NLOG(FString::Printf(TEXT("\t\tMounted Pak: %s, PakFilePathFull: %s"), *PakFileName, *PakFilePathFull));
- NLOG(FString::Printf(TEXT("\t\tMountPoint: %s"), *PakFile.GetMountPoint()));
- TArray<FString> FileList;
- PakFile.FindFilesAtPath(FileList, *PakFile.GetMountPoint(), true, false, true);
- for (auto File : FileList)
- {
- NLOG(FString::Printf(TEXT("\t\t\t\tFile: %s"), *File));
- FString GamePathName;
- bool bRes = FPackageName::TryConvertFilenameToLongPackageName(FPaths::GetPath(File), GamePathName);
- FString AssetShortName = FPackageName::GetShortName(File);
- FString FileName, FileExt;
- AssetShortName.Split(TEXT("."), &FileName, &FileExt);
- if (FileExt == "uexp" || FileExt == "ubulk") continue;
- else
- {
- FString NewAssetName = GamePathName + TEXT(".") + FileName;
- NLOG(FString::Printf(TEXT("\t\t\t\t\t->%i, GamePathName: %s, FileExt: %s, AssetShortName: %s"), (int)bRes, *GamePathName, *FileExt, *AssetShortName));
- }
- }
- }
- }
- void AModProjectCharacter::TryToStream(FString FileWithPath)
- {
- NLOG(FString::Printf(TEXT("TryToStream: %s"), *FileWithPath));
- FStreamableManager StreamableManager;
- FSoftObjectPath SoftRef(*FileWithPath);
- UObject *LoadObj = StreamableManager.LoadSynchronous(SoftRef);
- if (!LoadObj)
- {
- NLOG(FString::Printf(TEXT("\tLoadSynchronous FAILED!")));
- }
- else
- {
- NLOG(FString::Printf(TEXT("\tLoadSynchronous OK - LoadObj %s, %s, %s"), *GetNameSafe(LoadObj), *LoadObj->StaticClass()->GetFName().ToString(), *GetNameSafe(LoadObj->GetClass())));
- }
- auto res = StreamableManager.RequestSyncLoad(SoftRef, true);
- if (res && res.IsValid() && res->HasLoadCompleted())
- {
- int32 L, R;
- res->GetLoadedCount(L, R);
- NLOG(FString::Printf(TEXT("\tL %i, R %i"), L, R));
- auto TL = Cast<UStaticMesh>(SoftRef.ResolveObject());
- NLOG(FString::Printf(TEXT("\tSM: %i"), TL ? 1 : 0));
- }
- else
- {
- NLOG(FString::Printf(TEXT("\tRequestSyncLoad FAILED!")));
- }
- }
- void AModProjectCharacter::TryToLoadStatic(FString FileWithPath)
- {
- NLOG(FString::Printf(TEXT("TryToLoadStatic: %s"), *FileWithPath));
- auto res = StaticLoadObject(UStaticMesh::StaticClass(), nullptr, *FileWithPath);
- NLOG(FString::Printf(TEXT("\tres: %i"), res ? 1 : 0));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement