// © 2025 Naked People Team. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/GameUserSettings.h" #include "NakedDesireUserSettings.generated.h" DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnSettingsChanged, class UNakedDesireUserSettings*, Settings); /** * */ UCLASS() class NAKEDDESIRE_API UNakedDesireUserSettings : public UGameUserSettings { GENERATED_BODY() public: UFUNCTION(BlueprintCallable) static UNakedDesireUserSettings* GetNakedDesireUserSettings(); UFUNCTION(BlueprintCallable) void SetGlobalVolume(float Value); UFUNCTION(BlueprintPure) float GetGlobalVolume() const; UFUNCTION(BlueprintCallable) void SetIsCensorshipEnabled(bool Value); UFUNCTION(BlueprintPure) bool GetIsCensorshipEnabled() const; UFUNCTION(BlueprintPure) bool GetHasAcceptedDisclaimer() const; UFUNCTION(BlueprintCallable) void SetHasAcceptedDisclaimer(bool Value); virtual void SaveSettings() override; virtual void ApplyNonResolutionSettings() override; virtual void ApplySettings(bool bCheckForCommandLineOverrides) override; UPROPERTY(BlueprintAssignable) FOnSettingsChanged OnSettingsChanged; protected: UPROPERTY(Config) float GlobalVolume = 0.5f; UPROPERTY(Config) bool IsCensorshipEnabled = false; UPROPERTY(Config) bool HasAcceptedDisclaimer = false; };