RealtimeStyleTransferRuntime/Source/LyraGame/Teams/LyraTeamDisplayAsset.h

55 lines
1.5 KiB
C++

// 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<FName, float> ScalarParameters;
UPROPERTY(EditAnywhere, BlueprintReadOnly)
TMap<FName, FLinearColor> ColorParameters;
UPROPERTY(EditAnywhere, BlueprintReadOnly)
TMap<FName, TObjectPtr<UTexture>> 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
};