Package Saving improved

This commit is contained in:
aollero 2023-03-14 17:15:03 +01:00 committed by bernat
parent b620986c05
commit 903e467656
2 changed files with 10 additions and 6 deletions

View File

@ -14,7 +14,7 @@ void AProceduralBuildingUtilities::GenerateImpostor()
// Not implemented yet.
}
void AProceduralBuildingUtilities::CookProceduralBuildingToMesh(const FString& DestinationPath)
void AProceduralBuildingUtilities::CookProceduralBuildingToMesh(const FString& DestinationPath, const FString& FileName)
{
TArray<UPrimitiveComponent*> Components;
this->GetComponents(Components, false);
@ -27,9 +27,13 @@ void AProceduralBuildingUtilities::CookProceduralBuildingToMesh(const FString& D
FVector NewLocation;
const float ScreenAreaSize = TNumericLimits<float>::Max();
const IMeshMergeUtilities& MeshUtilities = FModuleManager::Get().LoadModuleChecked<IMeshMergeModule>("MeshMergeUtilities").GetUtilities();
MeshUtilities.MergeComponentsToStaticMesh(Components, World, MeshMergeSettings, nullptr, nullptr, DestinationPath, AssetsToSync, NewLocation, ScreenAreaSize, true);
FString PackageName = DestinationPath + FileName;
UPackage* NewPackage = CreatePackage(*PackageName);
TArray<UClass*> ClassesToSave = { UStaticMesh::StaticClass() };
FEditorFileUtils::SaveDirtyContentPackages(ClassesToSave, false, false, true, false);
const IMeshMergeUtilities& MeshUtilities = FModuleManager::Get().LoadModuleChecked<IMeshMergeModule>("MeshMergeUtilities").GetUtilities();
MeshUtilities.MergeComponentsToStaticMesh(Components, World, MeshMergeSettings, nullptr, NewPackage, FileName, AssetsToSync, NewLocation, ScreenAreaSize, true);
//UE_LOG(LogCarlaToolsMapGenerator, Log, TEXT("Size of AssetsToSync %d"), AssetsToSync.Num());
UPackage::SavePackage(NewPackage, AssetsToSync[0], EObjectFlags::RF_Public | EObjectFlags::RF_Standalone, *FileName, GError, nullptr, true, true, SAVE_NoError);
}

View File

@ -21,6 +21,6 @@ public:
void GenerateImpostor();
UFUNCTION(BlueprintCallable, Category="Procedural Building Utilities")
void CookProceduralBuildingToMesh(const FString& DestinationPath);
void CookProceduralBuildingToMesh(const FString& DestinationPath, const FString& FileName);
};