OLS/Source/ols/Public/DataAssets/OLSExperienceDefinitionDataAsset.h

56 lines
1.8 KiB
C
Raw Normal View History

2025-01-06 21:29:37 +00:00
// © 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"
2025-01-09 23:05:57 +00:00
#include "OLSExperienceDefinitionDataAsset.generated.h"
2025-01-06 21:29:37 +00:00
/**
* Definition of an experience
*/
UCLASS(BlueprintType, Const)
2025-01-09 23:05:57 +00:00
class OLS_API UOLSExperienceDefinitionDataAsset : public UOLSPrimaryDataAsset
2025-01-06 21:29:37 +00:00
{
GENERATED_BODY()
public:
2025-01-09 23:05:57 +00:00
UOLSExperienceDefinitionDataAsset();
2025-01-06 21:29:37 +00:00
//~ 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:
2025-01-06 21:29:37 +00:00
// 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 */
2025-01-09 18:27:12 +00:00
UPROPERTY(EditDefaultsOnly, Category = "OLSExperienceDefinition")
2025-01-09 23:05:57 +00:00
TObjectPtr<const class UOLSPawnDataAsset> DefaultPawnData = nullptr;
2025-01-06 21:29:37 +00:00
// 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
2025-01-09 18:27:12 +00:00
UPROPERTY(EditDefaultsOnly, Category = "OLSExperienceDefinition")
2025-01-09 23:05:57 +00:00
TArray<TObjectPtr<class UOLSExperienceActionSetDataAsset>> ActionSets;
2025-01-06 21:29:37 +00:00
};