// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Engine/DeveloperSettingsBackedByCVars.h" #include "Cosmetics/LyraCharacterPartTypes.h" #include "LyraCosmeticDeveloperSettings.generated.h" class ULyraExperienceDefinition; UENUM() enum class ECosmeticCheatMode { ReplaceParts, AddParts }; /** * Cosmetic developer settings / editor cheats */ UCLASS(config=EditorPerProjectUserSettings, MinimalAPI) class ULyraCosmeticDeveloperSettings : public UDeveloperSettingsBackedByCVars { GENERATED_BODY() public: ULyraCosmeticDeveloperSettings(); //~UDeveloperSettings interface virtual FName GetCategoryName() const override; //~End of UDeveloperSettings interface public: UPROPERTY(Transient, EditAnywhere) TArray CheatCosmeticCharacterParts; UPROPERTY(Transient, EditAnywhere) ECosmeticCheatMode CheatMode; #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(); void ReapplyLoadoutIfInPIE(); #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 private: };