// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Templates/SubclassOf.h" #include "Kismet/BlueprintFunctionLibrary.h" #include "LyraSystemStatics.generated.h" class UMeshComponent; UCLASS() class ULyraSystemStatics : public UBlueprintFunctionLibrary { GENERATED_BODY() public: /** Returns the soft object reference associated with a Primary Asset Id, this works even if the asset is not loaded */ UFUNCTION(BlueprintPure, Category = "AssetManager", meta=(DeterminesOutputType=ExpectedAssetType)) static TSoftObjectPtr GetTypedSoftObjectReferenceFromPrimaryAssetId(FPrimaryAssetId PrimaryAssetId, TSubclassOf ExpectedAssetType); UFUNCTION(BlueprintCallable) static FPrimaryAssetId GetPrimaryAssetIdFromUserFacingExperienceName(const FString& AdvertisedExperienceID); UFUNCTION(BlueprintCallable, BlueprintAuthorityOnly, Category="Lyra", meta = (WorldContext = "WorldContextObject")) static void PlayNextGame(const UObject* WorldContextObject); // Sets ParameterName to ParameterValue on all sections of all mesh components found on the TargetActor UFUNCTION(BlueprintCallable, Category = "Rendering|Material", meta=(DefaultToSelf="TargetActor")) static void SetScalarParameterValueOnAllMeshComponents(AActor* TargetActor, const FName ParameterName, const float ParameterValue, bool bIncludeChildActors = true); // Sets ParameterName to ParameterValue on all sections of all mesh components found on the TargetActor UFUNCTION(BlueprintCallable, Category = "Rendering|Material", meta=(DefaultToSelf="TargetActor")) static void SetVectorParameterValueOnAllMeshComponents(AActor* TargetActor, const FName ParameterName, const FVector ParameterValue, bool bIncludeChildActors = true); // Sets ParameterName to ParameterValue on all sections of all mesh components found on the TargetActor UFUNCTION(BlueprintCallable, Category = "Rendering|Material", meta=(DefaultToSelf="TargetActor")) static void SetColorParameterValueOnAllMeshComponents(AActor* TargetActor, const FName ParameterName, const FLinearColor ParameterValue, bool bIncludeChildActors = true); // Gets all the components that inherit from the given class UFUNCTION(BlueprintCallable, Category = "Actor", meta=(DefaultToSelf="TargetActor", ComponentClass="ActorComponent", DeterminesOutputType="ComponentClass")) static TArray FindComponentsByClass(AActor* TargetActor, TSubclassOf ComponentClass, bool bIncludeChildActors = true); };