From 903e467656bbc0f0a5a508d30e770c4cbc51bf03 Mon Sep 17 00:00:00 2001 From: aollero Date: Tue, 14 Mar 2023 17:15:03 +0100 Subject: [PATCH] Package Saving improved --- .../Private/ProceduralBuildingUtilities.cpp | 14 +++++++++----- .../Public/ProceduralBuildingUtilities.h | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Private/ProceduralBuildingUtilities.cpp b/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Private/ProceduralBuildingUtilities.cpp index 17408a002..3c5f0c325 100644 --- a/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Private/ProceduralBuildingUtilities.cpp +++ b/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Private/ProceduralBuildingUtilities.cpp @@ -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 Components; this->GetComponents(Components, false); @@ -27,9 +27,13 @@ void AProceduralBuildingUtilities::CookProceduralBuildingToMesh(const FString& D FVector NewLocation; const float ScreenAreaSize = TNumericLimits::Max(); - const IMeshMergeUtilities& MeshUtilities = FModuleManager::Get().LoadModuleChecked("MeshMergeUtilities").GetUtilities(); - MeshUtilities.MergeComponentsToStaticMesh(Components, World, MeshMergeSettings, nullptr, nullptr, DestinationPath, AssetsToSync, NewLocation, ScreenAreaSize, true); + FString PackageName = DestinationPath + FileName; + UPackage* NewPackage = CreatePackage(*PackageName); - TArray ClassesToSave = { UStaticMesh::StaticClass() }; - FEditorFileUtils::SaveDirtyContentPackages(ClassesToSave, false, false, true, false); + const IMeshMergeUtilities& MeshUtilities = FModuleManager::Get().LoadModuleChecked("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); } diff --git a/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Public/ProceduralBuildingUtilities.h b/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Public/ProceduralBuildingUtilities.h index b8320ff12..4b8bd6ab3 100644 --- a/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Public/ProceduralBuildingUtilities.h +++ b/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Public/ProceduralBuildingUtilities.h @@ -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); };