RealtimeStyleTransferRuntime/Source/LyraGame/Development/LyraDeveloperSettings.h

103 lines
3.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Engine/DeveloperSettingsBackedByCVars.h"
#include "GameplayTagContainer.h"
#include "LyraDeveloperSettings.generated.h"
class ULyraExperienceDefinition;
UENUM()
enum class ECheatExecutionTime
{
// When the cheat manager is created
OnCheatManagerCreated,
// When a pawn is possessed by a player
OnPlayerPawnPossession
};
USTRUCT()
struct FLyraCheatToRun
{
GENERATED_BODY()
UPROPERTY(EditAnywhere)
ECheatExecutionTime Phase = ECheatExecutionTime::OnPlayerPawnPossession;
UPROPERTY(EditAnywhere)
FString Cheat;
};
/**
* Developer settings / editor cheats
*/
UCLASS(config=EditorPerProjectUserSettings, MinimalAPI)
class ULyraDeveloperSettings : public UDeveloperSettingsBackedByCVars
{
GENERATED_BODY()
public:
ULyraDeveloperSettings();
//~UDeveloperSettings interface
virtual FName GetCategoryName() const override;
//~End of UDeveloperSettings interface
public:
// The experience override to use for Play in Editor (if not set, the default for the world settings of the open map will be used)
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, config, Category=Lyra, meta=(AllowedTypes="LyraExperienceDefinition"))
FPrimaryAssetId ExperienceOverride;
UPROPERTY(BlueprintReadOnly, config, Category=LyraBots)
bool bOverrideBotCount = false;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, config, Category=LyraBots, meta=(EditCondition=bOverrideBotCount))
int32 OverrideNumPlayerBotsToSpawn = 0;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, config, Category=LyraBots)
bool bAllowPlayerBotsToAttack = true;
// Do the full game flow when playing in the editor, or skip 'waiting for player' / etc... game phases?
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, config, Category=Lyra)
bool bTestFullGameFlowInPIE = false;
// Should game logic load cosmetic backgrounds in the editor or skip them for iteration speed?
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, config, Category=Lyra)
bool bSkipLoadingCosmeticBackgroundsInPIE = false;
// List of cheats to auto-run during 'play in editor'
UPROPERTY(config, EditAnywhere, Category=Lyra)
TArray<FLyraCheatToRun> CheatsToRun;
// Should messages broadcast through the gameplay message subsystem be logged?
UPROPERTY(config, EditAnywhere, Category=GameplayMessages, meta=(ConsoleVariable="GameplayMessageSubsystem.LogMessages"))
bool LogGameplayMessages = false;
#if WITH_EDITORONLY_DATA
/** A list of common maps that will be accessible via the editor detoolbar */
UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category=Maps, meta=(AllowedClasses="/Script/Engine.World"))
TArray<FSoftObjectPath> CommonEditorMaps;
#endif
#if WITH_EDITOR
public:
// Called by the editor engine to let us pop reminder notifications when cheats are active
LYRAGAME_API void OnPlayInEditorStarted() const;
private:
void ApplySettings();
#endif
public:
//~UObject interface
#if WITH_EDITOR
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
virtual void PostReloadConfig(FProperty* PropertyThatWasLoaded) override;
virtual void PostInitProperties() override;
#endif
//~End of UObject interface
};