// Constructs a new object factory from the given text buffer static TSharedRef<FComponentObjectTextFactory> Get(const FString& InTextBuffer, bool bPasteAsArchetypes = false) { // Construct a new instance TSharedPtr<FComponentObjectTextFactory> FactoryPtr = MakeShareable(new FComponentObjectTextFactory()); check(FactoryPtr.IsValid()); // Create new objects if we're allowed to if (FactoryPtr->CanCreateObjectsFromText(InTextBuffer)) { EObjectFlags ObjectFlags = RF_Transactional; if (bPasteAsArchetypes) { ObjectFlags |= RF_ArchetypeObject | RF_Public; } // Use the transient package initially for creating the objects, since the variable name is used when copying FactoryPtr->ProcessBuffer(GetTransientPackage(), ObjectFlags, InTextBuffer); } return FactoryPtr.ToSharedRef(); }