#include "StreetMapReimportFactory.h" #include "StreetMap.h" #include "EditorFramework/AssetImportData.h" UStreetMapReimportFactory::UStreetMapReimportFactory(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { } bool UStreetMapReimportFactory::CanReimport( UObject* Obj, TArray& OutFilenames ) { UStreetMap* StreetMap = Cast( Obj ); if( StreetMap != nullptr ) { OutFilenames.Add( StreetMap->AssetImportData->GetFirstFilename() ); return true; } return false; } void UStreetMapReimportFactory::SetReimportPaths( UObject* Obj, const TArray& NewReimportPaths ) { UStreetMap* StreetMap = CastChecked( Obj ); StreetMap->Modify(); StreetMap->AssetImportData->Update( NewReimportPaths[0] ); } EReimportResult::Type UStreetMapReimportFactory::Reimport( UObject* Obj ) { UStreetMap* StreetMap = CastChecked( Obj ); const FString Filename = StreetMap->AssetImportData->GetFirstFilename(); const FString FileExtension = FPaths::GetExtension(Filename); // If there is no file path provided, can't reimport from source if ( !Filename.Len() ) { return EReimportResult::Failed; } if( UFactory::StaticImportObject( StreetMap->GetClass(), StreetMap->GetOuter(), *StreetMap->GetName(), RF_Public|RF_Standalone, *Filename, nullptr, this ) ) { // Mark the package dirty after the successful import StreetMap->MarkPackageDirty(); return EReimportResult::Succeeded; } return EReimportResult::Failed; } int32 UStreetMapReimportFactory::GetPriority() const { return 0; }