diff --git a/Content/Legumix/Player/BP_Play.uasset b/Content/Legumix/Player/BP_Play.uasset index 8fabfd8..dc15d20 100644 --- a/Content/Legumix/Player/BP_Play.uasset +++ b/Content/Legumix/Player/BP_Play.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6d7f117fdce23922720d7b451153e01b0d7fe4080796ef26529c2228a59ec624 -size 174865 +oid sha256:4de6ff4a19b3d25bbf30fa1ebbc9faddfeb0f52f9f5ec41b316ff7a3cf98d28c +size 284448 diff --git a/Content/Legumix/Player/HUD/WP_PauseMenu.uasset b/Content/Legumix/Player/HUD/WP_PauseMenu.uasset index df86dea..675ae8a 100644 --- a/Content/Legumix/Player/HUD/WP_PauseMenu.uasset +++ b/Content/Legumix/Player/HUD/WP_PauseMenu.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1ee0067db98b8c78f172cb0f4e7cc252aff7f3890592d6cf85e8ff8714e4da1f -size 126159 +oid sha256:6fb1ca1f450b47d9335be66ecc508d448f84bd116600285302fee5c6f06c178f +size 122226 diff --git a/Source/LegumeMix/Private/LMUserSettings.cpp b/Source/LegumeMix/Private/LMUserSettings.cpp index ca31013..38c0786 100644 --- a/Source/LegumeMix/Private/LMUserSettings.cpp +++ b/Source/LegumeMix/Private/LMUserSettings.cpp @@ -7,3 +7,10 @@ ULMUserSettings* ULMUserSettings::GetLegumixUserSettings() { return Cast(UGameUserSettings::GetGameUserSettings()); } + +void ULMUserSettings::ApplySettings(const bool bCheckForCommandLineOverrides) +{ + Super::ApplySettings(bCheckForCommandLineOverrides); + OnSettingsChanged.Broadcast(); +} + diff --git a/Source/LegumeMix/Private/Player/LMPlayerController.cpp b/Source/LegumeMix/Private/Player/LMPlayerController.cpp index 16758a2..94eb9f8 100644 --- a/Source/LegumeMix/Private/Player/LMPlayerController.cpp +++ b/Source/LegumeMix/Private/Player/LMPlayerController.cpp @@ -18,6 +18,9 @@ void ALMPlayerController::BeginPlay() LegumixPlayer = Cast(GetPawn()); LegumixPlayer->OnRequestedUnpause.AddUniqueDynamic(this, &ALMPlayerController::TogglePause); + ULMUserSettings::GetLegumixUserSettings()->OnSettingsChanged.AddUniqueDynamic(this, &ALMPlayerController::OnSettingsChanged); + + OnSettingsChanged(); } void ALMPlayerController::SetupInputComponent() @@ -50,8 +53,6 @@ void ALMPlayerController::Jump(const FInputActionValue& InputValue) void ALMPlayerController::Look(const FInputActionValue& InputValue) { const FVector2d VectorDirection = InputValue.Get(); - - const float Sensitivity = ULMUserSettings::GetLegumixUserSettings()->MouseSensitivity; AddYawInput(VectorDirection.X * Sensitivity); AddPitchInput(VectorDirection.Y * Sensitivity); @@ -92,3 +93,10 @@ void ALMPlayerController::TogglePause() SetInputMode(InputMode); } } + +void ALMPlayerController::OnSettingsChanged() +{ + Sensitivity = ULMUserSettings::GetLegumixUserSettings()->MouseSensitivity; + int const CameraFov = ULMUserSettings::GetLegumixUserSettings()->FieldOfView; + LegumixPlayer->GetCamera()->SetFieldOfView(CameraFov); +} diff --git a/Source/LegumeMix/Public/LMUserSettings.h b/Source/LegumeMix/Public/LMUserSettings.h index 300fa87..8af3c7a 100644 --- a/Source/LegumeMix/Public/LMUserSettings.h +++ b/Source/LegumeMix/Public/LMUserSettings.h @@ -7,7 +7,7 @@ #include "GameFramework/GameUserSettings.h" #include "LMUserSettings.generated.h" -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnSettingsChangedSignature, FLMSettings, setting); +DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnSettingsChangedSignature); /** * @@ -21,6 +21,8 @@ public: UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Legumix", meta = (Keywords = "Game User Settings, Settings, User Settings")) static ULMUserSettings* GetLegumixUserSettings(); + virtual void ApplySettings(bool bCheckForCommandLineOverrides) override; + UPROPERTY(BlueprintCallable, BlueprintAssignable, category = "Legumix") FOnSettingsChangedSignature OnSettingsChanged; diff --git a/Source/LegumeMix/Public/Player/LMPlayerController.h b/Source/LegumeMix/Public/Player/LMPlayerController.h index c2374f8..58f1ab6 100644 --- a/Source/LegumeMix/Public/Player/LMPlayerController.h +++ b/Source/LegumeMix/Public/Player/LMPlayerController.h @@ -60,7 +60,13 @@ private: void Scroll(const FInputActionValue& InputValue); void PauseInput(const FInputActionValue& InputValue); + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true, UIMin=0.01, ClampMin=0.01, UIMax=10.0, ClampMax=10.0)) + float Sensitivity = 1.0f; + private: UFUNCTION(BlueprintCallable, Category = Legumix) void TogglePause(); + + UFUNCTION(BlueprintCallable, Category = Legumix) + void OnSettingsChanged(); };