// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Engine/DataAsset.h" #include "LyraTeamDisplayAsset.generated.h" class UMaterialInstanceDynamic; class UMeshComponent; class UNiagaraComponent; class AActor; class UTexture; // Represents the display information for team definitions (e.g., colors, display names, textures, etc...) UCLASS(BlueprintType) class ULyraTeamDisplayAsset : public UDataAsset { GENERATED_BODY() public: UPROPERTY(EditAnywhere, BlueprintReadOnly) TMap ScalarParameters; UPROPERTY(EditAnywhere, BlueprintReadOnly) TMap ColorParameters; UPROPERTY(EditAnywhere, BlueprintReadOnly) TMap> TextureParameters; UPROPERTY(EditAnywhere, BlueprintReadOnly) FText TeamShortName; public: UFUNCTION(BlueprintCallable, Category=Teams) void ApplyToMaterial(UMaterialInstanceDynamic* Material); UFUNCTION(BlueprintCallable, Category=Teams) void ApplyToMeshComponent(UMeshComponent* MeshComponent); UFUNCTION(BlueprintCallable, Category=Teams) void ApplyToNiagaraComponent(UNiagaraComponent* NiagaraComponent); UFUNCTION(BlueprintCallable, Category=Teams, meta=(DefaultToSelf="TargetActor")) void ApplyToActor(AActor* TargetActor, bool bIncludeChildActors = true); public: //~UObject interface #if WITH_EDITOR virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override; #endif //~End of UObject interface };