5#include "CoreMinimal.h"
7#include "Components/ActorComponent.h"
10#include "CameraTargetingComponent.generated.h"
13class APlayerController;
14class UCameraZoomComponent;
15class UTargetingComponent;
21UCLASS(ClassGroup=(Combat), meta=(BlueprintSpawnableComponent))
27 UCameraTargetingComponent();
30 virtual
void BeginPlay() override;
31 virtual
void EndPlay(EEndPlayReason::Type EndPlayReason) override;
32 virtual
void UpdateCameraBehavior(
AGameCameraManager* CameraManager,
float DeltaTime) override;
35 UFUNCTION(BlueprintCallable, Category = "Targeting|Input")
36 void BeginTargeting();
38 UFUNCTION(BlueprintCallable, Category = "Targeting|Input")
39 void ToggleTargeting();
41 UFUNCTION(BlueprintCallable, Category = "Targeting|Input")
42 void CycleTarget(
float WheelDelta);
44 UFUNCTION(BlueprintCallable, Category = "Targeting")
45 void ReleaseTargeting();
47 UFUNCTION(BlueprintCallable, Category = "Targeting")
48 void SetTargetingPrevented(
bool bInPrevented);
51 UFUNCTION(BlueprintPure, Category = "Targeting")
52 bool IsTargeting() const;
54 UFUNCTION(BlueprintPure, Category = "Targeting")
55 FORCEINLINE
bool IsTargetingPrevented()
const
57 return bTargetingPrevented;
60 UFUNCTION(BlueprintPure, Category =
"Targeting")
61 bool HasTarget() const;
63 UFUNCTION(BlueprintPure, Category = "Targeting")
73 void HideLastTargetingMarker();
74 void UpdateCameraToTarget(
float DeltaTime);
79 APlayerController* GetOwnerController() const;
80 UCameraZoomComponent* GetCameraZoomComponent() const;
81 UTargetingComponent* GetTargetingComponent() const;
85 FOnPlayerTargetingActiveChangedSignature OnTargetingActiveChanged;
88 UPROPERTY(EditDefaultsOnly, Category = "Targeting", meta = (ClampMin = "0.0"))
91 UPROPERTY(EditDefaultsOnly, Category = "Targeting", meta = (ClampMin = "0.0", Units = "Seconds"))
92 float CameraInterpTime = 0.15f;
94 UPROPERTY(EditDefaultsOnly, Category = "Targeting", meta = (ClampMin = "-89.0", ClampMax = "89.0"))
95 float TargetViewPitchOffset = 15.0f;
97 UPROPERTY(EditDefaultsOnly, Category = "Targeting")
98 bool bUseCustomPitchLimitAngle = true;
100 UPROPERTY(EditDefaultsOnly, Category = "Targeting", meta = (ClampMin = "0.0", ClampMax = "89.0", EditCondition = "bUseCustomPitchLimitAngle"))
101 float MaxPitchDownAngle = 32.0f;
103 UPROPERTY(EditDefaultsOnly, Category = "Targeting", meta = (ClampMin = "0.0"))
104 float WheelCycleThreshold = 0.5f;
108 TWeakObjectPtr<AActor> LastTargetingMarkerActor;
111 float WheelAccumulator = 0.0f;
112 bool bTargetingPrevented = false;
113 bool bWantsTargeting = false;
DECLARE_MULTICAST_DELEGATE_OneParam(FOnPlayerTargetingActiveChangedSignature, bool)
Definition GameCameraManager.h:28
Definition CameraBehaviorInterface.h:21
Definition TargetableInterface.h:20
Definition CK_Definitions.h:4