OLS/Source/ols/Public/DataAssets/OLSExperienceDefinitionDataAsset.h
2025-01-09 16:05:57 -07:00

56 lines
1.8 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 "DataAssets/OLSPrimaryDataAsset.h"
#include "Engine/DataAsset.h"
#include "OLSExperienceDefinitionDataAsset.generated.h"
/**
* Definition of an experience
*/
UCLASS(BlueprintType, Const)
class OLS_API UOLSExperienceDefinitionDataAsset : public UOLSPrimaryDataAsset
{
GENERATED_BODY()
public:
UOLSExperienceDefinitionDataAsset();
//~ Begin UObject interface
#if WITH_EDITOR
virtual EDataValidationResult IsDataValid(class FDataValidationContext& context) const override;
#endif
//~ End of UObject interface
//~ Begin IOLSPrimaryDataAssetInterface
virtual FString GetIdentifierString() const override;
//~ End IOLSPrimaryDataAssetInterface
//~ Begin UPrimaryDataAsset interface
#if WITH_EDITORONLY_DATA
virtual void UpdateAssetBundleData() override;
#endif
//~ End of UPrimaryDataAsset interface
public:
// List of Game Feature Plugins this experience wants to have active
UPROPERTY(EditDefaultsOnly, Category = "OLSExperienceDefinition")
TArray<FString> GameFeaturesToEnable;
/** The default pawn class to spawn for players */
UPROPERTY(EditDefaultsOnly, Category = "OLSExperienceDefinition")
TObjectPtr<const class UOLSPawnDataAsset> DefaultPawnData = nullptr;
// List of actions to perform as this experience is loaded/activated/deactivated/unloaded
UPROPERTY(EditDefaultsOnly, Instanced, Category = "OLSExperienceDefinition")
TArray<TObjectPtr<class UGameFeatureAction>> Actions;
// List of additional action sets to compose into this experience
UPROPERTY(EditDefaultsOnly, Category = "OLSExperienceDefinition")
TArray<TObjectPtr<class UOLSExperienceActionSetDataAsset>> ActionSets;
};