// © 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 GameFeaturesToEnable; /** The default pawn class to spawn for players */ UPROPERTY(EditDefaultsOnly, Category = "OLSExperienceDefinition") TObjectPtr DefaultPawnData = nullptr; // List of actions to perform as this experience is loaded/activated/deactivated/unloaded UPROPERTY(EditDefaultsOnly, Instanced, Category = "OLSExperienceDefinition") TArray> Actions; // List of additional action sets to compose into this experience UPROPERTY(EditDefaultsOnly, Category = "OLSExperienceDefinition") TArray> ActionSets; };