OLS/Source/ols/Public/DataAssets/OLSPawnDataAsset.h
LongLy 57b53b9c0c Implemented OLSCameraMode.
Addressed @TODOs related to custom logs and OLSCameraMode
2025-01-20 14:08:07 -07:00

50 lines
1.9 KiB
C++

// © 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<class APawn> PawnClass = nullptr;
// Ability sets to grant to this pawn's ability system.
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "OLS|Abilities")
TArray<TObjectPtr<class UOLSAbilitySetDataAsset>> AbilitySets;
// What mapping of ability tags to use for actions taking by this pawn
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "OLS|Abilities")
TObjectPtr<class UOLSAbilityTagRelationshipMappingDataAsset> TagRelationshipMapping = nullptr;
// Input configuration used by player controlled pawns to create input mappings and bind input actions.
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "OLS|Input")
TObjectPtr<class UOLSInputConfigDataAsset> InputConfig = nullptr;
// Default camera mode used by player controlled pawns.
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Camera")
TSubclassOf<class UOLSCameraMode> DefaultCameraMode = nullptr;
};