This repository has been archived on 2025-04-18. You can view files and clone it, but cannot push or open issues or pull requests.
LegumeMix/Source/LegumeMix/Public/Player/LMPlayerController.h
TjgL e797ecd8de Implemented weapon switch scroll limit
Signed-off-by: TjgL <lithmoneo@gmail.com>
2025-03-28 16:32:12 +01:00

87 lines
2.7 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/PlayerController.h"
#include "EnhancedInputSubsystems.h"
#include "LMPlayerController.generated.h"
class ALMPlayer;
/**
*
*/
UCLASS()
class LEGUMEMIX_API ALMPlayerController : public APlayerController
{
GENERATED_BODY()
public:
virtual void BeginPlay() override;
private:
UPROPERTY()
UEnhancedInputLocalPlayerSubsystem* EnhancedInputSubsystem;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowprivateAccess = true))
TObjectPtr<UInputMappingContext> DefaultMappingContext;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> MoveAction;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> LookAction;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> JumpAction;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> FireAction;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> ReloadAction;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> ScrollAction;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> PauseAction;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> SlideAction;
UPROPERTY(BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<ALMPlayer> LegumixPlayer;
virtual void SetupInputComponent() override;
void Move(const FInputActionValue& InputValue);
void Jump(const FInputActionValue& InputValue);
void Look(const FInputActionValue& InputValue);
void Fire(const FInputActionValue& InputValue);
void Reload(const FInputActionValue& InputValue);
void Scroll(const FInputActionValue& InputValue);
void PauseInput(const FInputActionValue& InputValue);
void SlideInput(const FInputActionValue& InputValue);
void SlideCancel(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;
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;
};