// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Engine/DataAsset.h" #include "LyraPawnData.generated.h" class APawn; class ULyraAbilitySet; class ULyraInputConfig; class ULyraAbilityTagRelationshipMapping; class ULyraCameraMode; /** * 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 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") ULyraAbilityTagRelationshipMapping* TagRelationshipMapping; // Input configuration used by player controlled pawns to create input mappings and bind input actions. UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Input") ULyraInputConfig* InputConfig; // Default camera mode used by player controlled pawns. UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Camera") TSubclassOf DefaultCameraMode; };