87 lines
2.7 KiB
C++
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;
|
|
};
|