diff --git a/Content/Legumix/Player/BP_Play.uasset b/Content/Legumix/Player/BP_Play.uasset index e90646e..6703808 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:d5030635a59c651f7244e04863852943089ce1d292119b23c97b1cff2ae6f764 -size 121785 +oid sha256:f781bf46e12fbf54d6e0882f99e3460b4a2fa909689b095c0e9fb7d3c03fca3b +size 163698 diff --git a/Content/Legumix/Player/BP_PlayerController.uasset b/Content/Legumix/Player/BP_PlayerController.uasset index fac88f9..6ea766e 100644 --- a/Content/Legumix/Player/BP_PlayerController.uasset +++ b/Content/Legumix/Player/BP_PlayerController.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7651a3b0a3adbaa6cc2aa4907c29a4a112d232a215f9b9511f30f258f4ed83e8 -size 21387 +oid sha256:aed27e7a1ce2efa1862e330681c83f0329c73288c6003dcd827ecc83f60dbdb7 +size 21577 diff --git a/Content/Legumix/Player/HUD/WP_PauseMenu.uasset b/Content/Legumix/Player/HUD/WP_PauseMenu.uasset new file mode 100644 index 0000000..5bf0cb2 --- /dev/null +++ b/Content/Legumix/Player/HUD/WP_PauseMenu.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43b34398e70e0ad3f0e781d4edd1f9cbdea15a73385c8abae4a63999aeeea806 +size 26318 diff --git a/Content/Legumix/Player/Input/IA_Pause.uasset b/Content/Legumix/Player/Input/IA_Pause.uasset new file mode 100644 index 0000000..0463d3b --- /dev/null +++ b/Content/Legumix/Player/Input/IA_Pause.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87c857ad557f653335138671ebc736d2214328730412e19f421c41ff05cb1f23 +size 1765 diff --git a/Content/Legumix/Player/Input/IMC_Default.uasset b/Content/Legumix/Player/Input/IMC_Default.uasset index ee7bc6a..4b3c94f 100644 --- a/Content/Legumix/Player/Input/IMC_Default.uasset +++ b/Content/Legumix/Player/Input/IMC_Default.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6c8b22e84568896085079b948cb41a5f2440fa9b67b6130412762911f838490d -size 9304 +oid sha256:e6f482de1b0f1d01b8addd6aa98e2bb9a0ad4213e5de92813b461299370dd4a5 +size 9979 diff --git a/Source/LegumeMix/Private/Player/LMPlayer.cpp b/Source/LegumeMix/Private/Player/LMPlayer.cpp index e0d5f65..fcdedb0 100644 --- a/Source/LegumeMix/Private/Player/LMPlayer.cpp +++ b/Source/LegumeMix/Private/Player/LMPlayer.cpp @@ -135,6 +135,10 @@ FVector ALMPlayer::GetWeaponFiringOrigin() FVector ALMPlayer::GetAimVector() { return GetCam()->GetForwardVector(); } +void ALMPlayer::OnPause_Implementation(bool Paused) +{ +} + UCameraComponent* ALMPlayer::GetCam() { if (!Camera) diff --git a/Source/LegumeMix/Private/Player/LMPlayerController.cpp b/Source/LegumeMix/Private/Player/LMPlayerController.cpp index 277cccd..ce2e98e 100644 --- a/Source/LegumeMix/Private/Player/LMPlayerController.cpp +++ b/Source/LegumeMix/Private/Player/LMPlayerController.cpp @@ -6,6 +6,7 @@ #include "EnhancedInputComponent.h" #include "LMUserSettings.h" #include "GameFramework/Character.h" +#include "Kismet/GameplayStatics.h" #include "Player/LMPlayer.h" #include "Weapon/LMWeaponManager.h" @@ -28,6 +29,7 @@ void ALMPlayerController::SetupInputComponent() Input->BindAction(FireAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Fire); Input->BindAction(ReloadAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Reload); Input->BindAction(ScrollAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Scroll); + Input->BindAction(PauseAction, ETriggerEvent::Triggered, this, &ALMPlayerController::PauseGame); } } @@ -68,3 +70,12 @@ void ALMPlayerController::Scroll(const FInputActionValue& InputValue) const float ScrollAmount = InputValue.Get(); LegumixPlayer->GetWeaponManager()->SwitchWeapon(ScrollAmount); } + +void ALMPlayerController::PauseGame(const FInputActionValue& InputValue) +{ + const bool bIsPaused = UGameplayStatics::IsGamePaused(GetWorld()); + UGameplayStatics::SetGamePaused(GetWorld(), !bIsPaused); + SetShowMouseCursor(!bIsPaused); + + LegumixPlayer->OnPause(!bIsPaused); +} diff --git a/Source/LegumeMix/Public/Player/LMPlayer.h b/Source/LegumeMix/Public/Player/LMPlayer.h index 26ee4b9..43d4d85 100644 --- a/Source/LegumeMix/Public/Player/LMPlayer.h +++ b/Source/LegumeMix/Public/Player/LMPlayer.h @@ -83,6 +83,9 @@ public: UFUNCTION(BlueprintImplementableEvent, Category=Legumix) void OnReload(); + UFUNCTION(BlueprintNativeEvent, BlueprintCallable) + void OnPause(bool Paused); + public: UFUNCTION(BlueprintImplementableEvent) UCameraComponent* GetCamera(); diff --git a/Source/LegumeMix/Public/Player/LMPlayerController.h b/Source/LegumeMix/Public/Player/LMPlayerController.h index dcf4e56..9828562 100644 --- a/Source/LegumeMix/Public/Player/LMPlayerController.h +++ b/Source/LegumeMix/Public/Player/LMPlayerController.h @@ -45,6 +45,9 @@ private: UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true)) TObjectPtr ScrollAction; + UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true)) + TObjectPtr PauseAction; + UPROPERTY(BlueprintReadOnly, meta = (AllowPrivateAccess = true)) TObjectPtr LegumixPlayer; @@ -55,4 +58,5 @@ private: void Fire(const FInputActionValue& InputValue); void Reload(const FInputActionValue& InputValue); void Scroll(const FInputActionValue& InputValue); + void PauseGame(const FInputActionValue& InputValue); };