2022-05-23 18:41:30 +00:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2022-09-13 07:18:28 +00:00
|
|
|
#include "Containers/Map.h"
|
2022-05-23 18:41:30 +00:00
|
|
|
#include "Engine/DataAsset.h"
|
2022-09-13 07:18:28 +00:00
|
|
|
#include "HAL/Platform.h"
|
|
|
|
#include "Internationalization/Text.h"
|
|
|
|
#include "UObject/PrimaryAssetId.h"
|
|
|
|
#include "UObject/SoftObjectPtr.h"
|
|
|
|
#include "UObject/UObjectGlobals.h"
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
#include "LyraUserFacingExperienceDefinition.generated.h"
|
|
|
|
|
2022-09-13 07:18:28 +00:00
|
|
|
class FString;
|
2022-05-23 18:41:30 +00:00
|
|
|
class UCommonSession_HostSessionRequest;
|
2022-09-13 07:18:28 +00:00
|
|
|
class UObject;
|
2022-05-23 18:41:30 +00:00
|
|
|
class UTexture2D;
|
|
|
|
class UUserWidget;
|
2022-09-13 07:18:28 +00:00
|
|
|
struct FFrame;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
/** Description of settings used to display experiences in the UI and start a new session */
|
|
|
|
UCLASS(BlueprintType)
|
|
|
|
class ULyraUserFacingExperienceDefinition : public UPrimaryDataAsset
|
|
|
|
{
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
|
|
|
public:
|
|
|
|
/** The specific map to load */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience, meta=(AllowedTypes="Map"))
|
|
|
|
FPrimaryAssetId MapID;
|
|
|
|
|
|
|
|
/** The gameplay experience to load */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience, meta=(AllowedTypes="LyraExperienceDefinition"))
|
|
|
|
FPrimaryAssetId ExperienceID;
|
|
|
|
|
|
|
|
/** Extra arguments passed as URL options to the game */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
|
|
|
|
TMap<FString, FString> ExtraArgs;
|
|
|
|
|
|
|
|
/** Primary title in the UI */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
|
|
|
|
FText TileTitle;
|
|
|
|
|
|
|
|
/** Secondary title */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
|
|
|
|
FText TileSubTitle;
|
|
|
|
|
|
|
|
/** Full description */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
|
|
|
|
FText TileDescription;
|
|
|
|
|
|
|
|
/** Icon used in the UI */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
|
2022-09-13 07:18:28 +00:00
|
|
|
TObjectPtr<UTexture2D> TileIcon;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
/** The loading screen widget to show when loading into (or back out of) a given experience */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=LoadingScreen)
|
|
|
|
TSoftClassPtr<UUserWidget> LoadingScreenWidget;
|
|
|
|
|
|
|
|
/** If true, this is a default experience that should be used for quick play and given priority in the UI */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
|
|
|
|
bool bIsDefaultExperience = false;
|
|
|
|
|
|
|
|
/** If true, this will show up in the experiences list in the front-end */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
|
|
|
|
bool bShowInFrontEnd = true;
|
|
|
|
|
|
|
|
/** If true, a replay will be recorded of the game */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
|
|
|
|
bool bRecordReplay = false;
|
|
|
|
|
|
|
|
/** Max number of players for this session */
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
|
|
|
|
int32 MaxPlayerCount = 16;
|
|
|
|
|
|
|
|
public:
|
|
|
|
/** Create a request object that is used to actually start a session with these settings */
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintPure=false)
|
|
|
|
UCommonSession_HostSessionRequest* CreateHostingRequest() const;
|
|
|
|
};
|