//------------------------------------------------------------------------------ static void BlueprintActionDatabaseImpl::OnAssetRenamed(FAssetData const& AssetInfo, const FString& InOldName) { FBlueprintActionDatabase& ActionDatabase = FBlueprintActionDatabase::Get(); if (!AssetInfo.IsAssetLoaded()) { ActionDatabase.MoveUnloadedAssetActions(*InOldName, AssetInfo.ObjectPath); } }
//------------------------------------------------------------------------------ bool FBlueprintActionDatabaseRegistrar::IsOpenForRegistration(FAssetData const& AssetKey) { UObject const* OwnerKey = GeneratingClass; if (AssetKey.IsAssetLoaded()) { OwnerKey = AssetKey.GetAsset(); } return IsOpenForRegistration(OwnerKey); }
//------------------------------------------------------------------------------ static void BlueprintActionDatabaseImpl::OnAssetRemoved(FAssetData const& AssetInfo) { FBlueprintActionDatabase& ActionDatabase = FBlueprintActionDatabase::Get(); if (AssetInfo.IsAssetLoaded()) { UObject* AssetObject = AssetInfo.GetAsset(); OnAssetRemoved(AssetObject); } else { ActionDatabase.ClearUnloadedAssetActions(AssetInfo.ObjectPath); } }
//------------------------------------------------------------------------------ static void BlueprintActionDatabaseImpl::OnAssetAdded(FAssetData const& NewAssetInfo) { if (NewAssetInfo.IsAssetLoaded()) { UObject* AssetObject = NewAssetInfo.GetAsset(); if (UBlueprint* NewBlueprint = Cast<UBlueprint>(AssetObject)) { OnBlueprintChanged(NewBlueprint); } else { FBlueprintActionDatabase& ActionDatabase = FBlueprintActionDatabase::Get(); ActionDatabase.RefreshAssetActions(AssetObject); } } }
//------------------------------------------------------------------------------ bool FBlueprintActionDatabaseRegistrar::AddBlueprintAction(FAssetData const& AssetDataOwner, UBlueprintNodeSpawner* NodeSpawner) { bool bReturnResult = false; // @TODO: assert that AddBlueprintAction(UBlueprintNodeSpawner* NodeSpawner) // wouldn't come up with a different key (besides GeneratingClass) if(AssetDataOwner.IsAssetLoaded()) { bReturnResult = AddBlueprintAction(AssetDataOwner.GetAsset(), NodeSpawner); } else { bReturnResult = AddBlueprintAction(NodeSpawner->NodeClass, NodeSpawner); if(bReturnResult) { TArray<UBlueprintNodeSpawner*>& ActionList = UnloadedActionDatabase.FindOrAdd(AssetDataOwner.ObjectPath); ActionList.Add(NodeSpawner); } } return bReturnResult; }