// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action. #pragma once #include "CoreMinimal.h" #include "OLSPrimaryDataAsset.h" #include "Engine/DataAsset.h" #include "OLSPawnDataAsset.generated.h" /** * UOLSPawnPrimaryDataAsset * * Non-mutable data asset that contains properties used to define a pawn. */ UCLASS(BlueprintType, Const, Meta = (DisplayName = "OLS Pawn Primary Data", ShortTooltip = "Data asset used to define a Pawn.")) class OLS_API UOLSPawnDataAsset : public UOLSPrimaryDataAsset { GENERATED_BODY() public: UOLSPawnDataAsset(const FObjectInitializer& objectInitializer); //~ Begin UOLSPrimaryDataAsset interface virtual FString GetIdentifierString() const override; //~ End UOLSPrimaryDataAsset interface public: // Class to instantiate for this pawn (should usually derive from AOLSPawn or AOLSCharacter). UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "OLS|Pawn") TSubclassOf PawnClass = nullptr; // Ability sets to grant to this pawn's ability system. UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "OLS|Abilities") TArray> AbilitySets; // What mapping of ability tags to use for actions taking by this pawn UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "OLS|Abilities") TObjectPtr TagRelationshipMapping = nullptr; // Input configuration used by player controlled pawns to create input mappings and bind input actions. UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "OLS|Input") TObjectPtr InputConfig = nullptr; // Default camera mode used by player controlled pawns. UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Camera") TSubclassOf DefaultCameraMode = nullptr; };