diff --git a/Content/Input/IA_Pause.uasset b/Content/Input/IA_Pause.uasset new file mode 100644 index 0000000..0173f00 --- /dev/null +++ b/Content/Input/IA_Pause.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b155fd78b432c94704141cee640dc31a8b292ec00f8b3bf7a20f7423e6c962a9 +size 1353 diff --git a/Content/Input/IMC_Player.uasset b/Content/Input/IMC_Player.uasset index 898bd42..a899bbe 100644 --- a/Content/Input/IMC_Player.uasset +++ b/Content/Input/IMC_Player.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:00d8beb2dd181b16ea90938c60a12d89fecc33a72b59e330a89cd94892ef8f4f -size 6857 +oid sha256:48ad94b082354c6fb3d91701249111212045f267033f112d0cb0d3d23484c23c +size 8389 diff --git a/Content/Player/BP_PlayerController.uasset b/Content/Player/BP_PlayerController.uasset index 12c862a..7e87d3c 100644 --- a/Content/Player/BP_PlayerController.uasset +++ b/Content/Player/BP_PlayerController.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:daade13b7187d5e9f75c6d693be23ed81fd8f3e02753ff7e777556499a2d4f47 -size 20805 +oid sha256:8a9fbb07f6538d67c5f48d821ef04d27e953477319b435e7fc411691269ba8ec +size 20980 diff --git a/Source/vampires/Inputable.h b/Source/vampires/Inputable.h index 156c806..72010b1 100644 --- a/Source/vampires/Inputable.h +++ b/Source/vampires/Inputable.h @@ -25,6 +25,9 @@ public: UFUNCTION(BlueprintCallable, BlueprintNativeEvent) void Input_Move(FVector2D value); + UFUNCTION(BlueprintCallable, BlueprintNativeEvent) + void Input_Pause(); + UFUNCTION(BlueprintCallable, BlueprintNativeEvent) UInputMappingContext* Input_GetInputMappingContext(); diff --git a/Source/vampires/VampirePlayerController.cpp b/Source/vampires/VampirePlayerController.cpp index 7084239..4234e9f 100644 --- a/Source/vampires/VampirePlayerController.cpp +++ b/Source/vampires/VampirePlayerController.cpp @@ -65,6 +65,7 @@ void AVampirePlayerController::SetupInputComponent() if (UEnhancedInputComponent* EIP = CastChecked(InputComponent)) { EIP->BindAction(MovementAction, ETriggerEvent::Triggered, this, &AVampirePlayerController::Move); + EIP->BindAction(PauseAction, ETriggerEvent::Triggered, this, &AVampirePlayerController::OnPause); } } @@ -81,6 +82,22 @@ void AVampirePlayerController::Move(const FInputActionValue& MovementInput) } } +void AVampirePlayerController::OnPause(const FInputActionValue& PauseInput) +{ + if (APawn* pawn = GetPawn()) + { + if (UKismetSystemLibrary::DoesImplementInterface(pawn, UInputable::StaticClass())) + { + IInputable::Execute_Input_Pause(pawn); + } + } + + if (SetPause(true)) + { + //TODO: Add pause screen + } +} + void AVampirePlayerController::UpdatePlayerEXPHUD(int exp, float currentLevelPercent) { if (currentPlayerHUD) diff --git a/Source/vampires/VampirePlayerController.h b/Source/vampires/VampirePlayerController.h index 4e92740..170db0e 100644 --- a/Source/vampires/VampirePlayerController.h +++ b/Source/vampires/VampirePlayerController.h @@ -6,6 +6,7 @@ #include "GameFramework/PlayerController.h" #include "VampirePlayerController.generated.h" +struct FInputActionValue; class UInputAction; class UHUDWidget; /** @@ -25,6 +26,8 @@ public: UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) UInputAction* MovementAction; + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) + UInputAction* PauseAction; private: @@ -42,6 +45,9 @@ protected: UFUNCTION() void Move(const FInputActionValue& MovementInput); + UFUNCTION() + void OnPause(const FInputActionValue& PauseInput); + UFUNCTION() void UpdatePlayerEXPHUD(int exp, float currentLevelPercent);