#include "StreetMapActorFactory.h" #include "AssetRegistry/AssetData.h" #include "StreetMapActor.h" #include "StreetMapComponent.h" #include "StreetMap.h" UStreetMapActorFactory::UStreetMapActorFactory(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { DisplayName = NSLOCTEXT("StreetMap", "StreetMapFactoryDisplayName", "Add StreetMap Actor"); NewActorClass = AStreetMapActor::StaticClass(); } void UStreetMapActorFactory::PostSpawnActor(UObject* Asset, AActor* NewActor) { Super::PostSpawnActor(Asset, NewActor); if (UStreetMap* StreetMapAsset = Cast(Asset)) { AStreetMapActor* StreetMapActor = CastChecked(NewActor); UStreetMapComponent* StreetMapComponent = StreetMapActor->GetStreetMapComponent(); StreetMapComponent->SetStreetMap(StreetMapAsset, false, true); } } bool UStreetMapActorFactory::CanCreateActorFrom(const FAssetData& AssetData, FText& OutErrorMsg) { return (AssetData.IsValid() && AssetData.GetClass()->IsChildOf(UStreetMap::StaticClass())); }