Implemented weapon switch scroll limit

Signed-off-by: TjgL <lithmoneo@gmail.com>
This commit is contained in:
TjgL 2025-03-28 16:32:12 +01:00
parent c50a120cac
commit e797ecd8de
3 changed files with 23 additions and 3 deletions

Binary file not shown.

View File

@ -35,6 +35,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(ScrollAction, ETriggerEvent::Canceled, this, &ALMPlayerController::ScrollEnded);
Input->BindAction(PauseAction, ETriggerEvent::Triggered, this, &ALMPlayerController::TogglePause);
Input->BindAction(SlideAction, ETriggerEvent::Started, this, &ALMPlayerController::SlideInput);
Input->BindAction(SlideAction, ETriggerEvent::Completed, this, &ALMPlayerController::SlideCancel);
@ -73,8 +74,19 @@ void ALMPlayerController::Reload(const FInputActionValue& InputValue)
void ALMPlayerController::Scroll(const FInputActionValue& InputValue)
{
if (bIsScrolling)
return;
const float ScrollAmount = InputValue.Get<float>();
LegumixPlayer->GetWeaponManager()->SwitchWeapon(ScrollAmount);
bIsScrolling = true;
GetWorldTimerManager().SetTimer(ScrollTimer, this, &ALMPlayerController::ScrollEnded, SwitchWeaponDelay, false);
}
void ALMPlayerController::ScrollEnded()
{
GetWorldTimerManager().ClearTimer(ScrollTimer);
bIsScrolling = false;
}
void ALMPlayerController::PauseInput(const FInputActionValue& InputValue)

View File

@ -54,7 +54,6 @@ private:
UPROPERTY(BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<ALMPlayer> LegumixPlayer;
virtual void SetupInputComponent() override;
void Move(const FInputActionValue& InputValue);
void Jump(const FInputActionValue& InputValue);
@ -69,10 +68,19 @@ private:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true, UIMin=0.01, ClampMin=0.01, UIMax=10.0, ClampMax=10.0))
float Sensitivity = 1.0f;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true, ClampMin = 0.f))
float SwitchWeaponDelay = 0.1f;
private:
UFUNCTION(BlueprintCallable, Category = Legumix)
void TogglePause();
UFUNCTION(BlueprintCallable, Category = Legumix)
void OnSettingsChanged();
void ScrollEnded();
FTimerHandle ScrollTimer;
bool bIsScrolling;
};