// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/Array.h" #include "Engine/DataAsset.h" #include "Templates/SubclassOf.h" #include "UObject/UObjectGlobals.h" #include "LyraPawnData.generated.h" class APawn; class ULyraAbilitySet; class ULyraAbilityTagRelationshipMapping; class ULyraCameraMode; class ULyraInputConfig; class UObject; /** * ULyraPawnData * * Non-mutable data asset that contains properties used to define a pawn. */ UCLASS(BlueprintType, Const, Meta = (DisplayName = "Lyra Pawn Data", ShortTooltip = "Data asset used to define a Pawn.")) class LYRAGAME_API ULyraPawnData : public UPrimaryDataAsset { GENERATED_BODY() public: ULyraPawnData(const FObjectInitializer& ObjectInitializer); public: // Class to instantiate for this pawn (should usually derive from ALyraPawn or ALyraCharacter). UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Pawn") TSubclassOf PawnClass; // Ability sets to grant to this pawn's ability system. UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Abilities") TArray> AbilitySets; // What mapping of ability tags to use for actions taking by this pawn UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Abilities") TObjectPtr TagRelationshipMapping; // Input configuration used by player controlled pawns to create input mappings and bind input actions. UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Input") TObjectPtr InputConfig; // Default camera mode used by player controlled pawns. UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Camera") TSubclassOf DefaultCameraMode; };