97 lines
3.0 KiB
C
97 lines
3.0 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_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
|
||
|
};
|