EReimportResult::Type UPaperSpriteSheetReimportFactory::Reimport(UObject* Obj) { UPaperSpriteSheet* SpriteSheet = Cast<UPaperSpriteSheet>(Obj); if (!SpriteSheet) { return EReimportResult::Failed; } // Make sure file is valid and exists const FString Filename = SpriteSheet->AssetImportData->GetFirstFilename(); if (!Filename.Len() || IFileManager::Get().FileSize(*Filename) == INDEX_NONE) { return EReimportResult::Failed; } // Configure the importer with the reimport settings Importer.SetReimportData(SpriteSheet->SpriteNames, SpriteSheet->Sprites); Importer.ExistingBaseTextureName = SpriteSheet->TextureName; Importer.ExistingBaseTexture = SpriteSheet->Texture; Importer.ExistingNormalMapTextureName = SpriteSheet->NormalMapTextureName; Importer.ExistingNormalMapTexture = SpriteSheet->NormalMapTexture; // Run the import again EReimportResult::Type Result = EReimportResult::Failed; bool OutCanceled = false; if (ImportObject(SpriteSheet->GetClass(), SpriteSheet->GetOuter(), *SpriteSheet->GetName(), RF_Public | RF_Standalone, Filename, nullptr, OutCanceled) != nullptr) { UE_LOG(LogPaperSpriteSheetImporter, Log, TEXT("Imported successfully")); SpriteSheet->AssetImportData->Update(Filename); // Try to find the outer package so we can dirty it up if (SpriteSheet->GetOuter()) { SpriteSheet->GetOuter()->MarkPackageDirty(); } else { SpriteSheet->MarkPackageDirty(); } Result = EReimportResult::Succeeded; } else { if (OutCanceled) { UE_LOG(LogPaperSpriteSheetImporter, Warning, TEXT("-- import canceled")); } else { UE_LOG(LogPaperSpriteSheetImporter, Warning, TEXT("-- import failed")); } Result = EReimportResult::Failed; } return Result; }
EReimportResult::Type UReimportSpeedTreeFactory::Reimport(UObject* Obj) { #if WITH_SPEEDTREE UStaticMesh* Mesh = Cast<UStaticMesh>(Obj); if (!Mesh) { return EReimportResult::Failed; } const FString Filename = Mesh->AssetImportData->GetFirstFilename(); const FString FileExtension = FPaths::GetExtension(Filename); const bool bIsSRT = FCString::Stricmp(*FileExtension, TEXT("SRT")) == 0; if (!bIsSRT) { return EReimportResult::Failed; } if (!(Filename.Len())) { // Since this is a new system most static meshes don't have paths, so logging has been commented out //UE_LOG(LogEditorFactories, Warning, TEXT("-- cannot reimport: static mesh resource does not have path stored.")); return EReimportResult::Failed; } UE_LOG(LogEditorFactories, Log, TEXT("Performing atomic reimport of [%s]"), *Filename); bool OutCanceled = false; if (ImportObject(Mesh->GetClass(), Mesh->GetOuter(), *Mesh->GetName(), RF_Public | RF_Standalone, Filename, nullptr, OutCanceled) != nullptr) { UE_LOG(LogEditorFactories, Log, TEXT("-- imported successfully")); Mesh->AssetImportData->Update(Filename); Mesh->MarkPackageDirty(); return EReimportResult::Succeeded; } else if (OutCanceled) { UE_LOG(LogEditorFactories, Warning, TEXT("-- import canceled")); } else { UE_LOG(LogEditorFactories, Warning, TEXT("-- import failed")); } #endif // #if WITH_SPEEDTREE return EReimportResult::Failed; }
LONG ALMCALLBACK admnProc( OBJECTID theObject, pAObjMessage system ) { LONG lRet = A_OK; KBRECORD kbRec; switch (system->message1) { case AOBJ_CREATED: kbRec.active = 1L; kbRec.version = DATAVersion; AObjAddData(theObject, &kbRec, sizeof(kbRec)); break; case AOBJ_ASSIGNOBJECT: { KBRECORD* kbRecSrc; OBJECTID sourceObject; sourceObject = (OBJECTID)(system->message3); kbRecSrc = (KBRECORD*) AObjLockData(sourceObject, DATA0); kbRecSrc->version = DATAVersion; // set if previously not set AObjSetData( theObject, DATA0, kbRecSrc, sizeof(KBRECORD)); AEvtPostStandard( theObject, AEVENT_OBJECTCHANGED, 0, AEVT_ATTAIL|AEVT_KILLDUPLICATES); AObjUnlockData(sourceObject, DATA0); break; } case AOBJ_READ: { KBRECORD* kbRec = (KBRECORD*) AObjLockData(theObject, DATA0); // for all keyboard objects of version 1 // translate the signals to match the MAC version, MAY 27, 1993 if (kbRec->version < CORRECTSIGNALVERSION) { TranslateSignals(theObject); } kbRec->version = DATAVersion; // set if previously not set if (kbRec->active != 0) kbRec->active = 1L; AObjUnlockData(theObject, DATA0); } break; case AOBJ_IMPORTOBJECT: ImportObject(theObject); break; case AOBJ_EXPORTOBJECT: ExportObject(theObject); break; case AOBJ_EDITOBJECT: if (EditKey(theObject)) // To manage description dlg lRet = A_MODIFIED; break; case AOBJ_CHECKOBJECT: break; case AOBJ_BUILDSIGNALS: doBuildSignals(system); break; default: lRet = A_NOTHANDLED; break; } return lRet; }