103 lines
3.3 KiB
C++
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
|
|
};
|