Space Plunder
Loading...
Searching...
No Matches
GameplayDebuggerCategory_Interaction.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#if WITH_GAMEPLAY_DEBUGGER
6
7#include "CoreMinimal.h"
8#include "GameplayDebuggerCategory.h"
10
11class AActor;
12class APlayerController;
13
14DECLARE_LOG_CATEGORY_EXTERN(LogInteractionDebugger, Display, All);
15
16class FGameplayDebuggerCategory_Interaction : public FGameplayDebuggerCategory
17{
18
19public:
20 FGameplayDebuggerCategory_Interaction();
21
22 virtual void CollectData(APlayerController* OwnerPC, AActor* DebugActor) override;
23
24 virtual void CollectInteractionComponentData(AActor* SelectedActor);
25 virtual void CollectServerInteractionComponentData(APlayerController* OwnerPC);
26
27 virtual void CollectInteractionData(AActor* SelectedActor);
28 // virtual void CollectServerInteractionData(APlayerController* OwnerPC);
29
30
31 virtual void CollectAimAssistData(APlayerController* SelectedPC);
32
33 virtual void CollectGrabberData(AActor* SelectedActor);
34 virtual void CollectServerGrabberData(APlayerController* OwnerPC);
35
36
37 virtual void DrawData(APlayerController* OwnerPC, FGameplayDebuggerCanvasContext& CanvasContext) override;
38
39 static TSharedRef<FGameplayDebuggerCategory> MakeInstance();
40
41 struct FDebugAssistHit
42 {
43 float Hits = 0;
44 FString TargetName = "Name";
45 FVector TargetLocation = FVector::ZeroVector;
46
47 float HalfHeight = 0.0f;
48 FDebugAssistHit()
49 {
50
51 }
52 explicit FDebugAssistHit(const FAimAssistHit& NewHit)
53 {
54 if(NewHit.Target == nullptr) {return;}
55 Hits = NewHit.Hits;
56 TargetName = NewHit.Target->GetHumanReadableName();
57 TargetLocation = NewHit.Target->GetActorLocation();
58 HalfHeight = NewHit.Target->GetSimpleCollisionHalfHeight();
59 }
60 friend FArchive& operator<<(FArchive& Ar, FDebugAssistHit& AssistHit)
61 {
62 Ar << AssistHit.TargetName;
63 Ar << AssistHit.TargetLocation;
64 Ar << AssistHit.Hits;
65 return Ar;
66 }
67
68 };
69
70protected:
71 bool bShowServerValues = false;
72 bool bDebugActorHasController = false;
73 float GrabberDebugSize = 20.0f;
74
75 struct FRepData
76 {
77 //~ Interaction ~//
78 float UseLength;
79 float TraceLength;
80 bool bBindOverlap;
81 bool bInteractOnAim;
82 bool bDoesTraceTick;
83 float TraceTickTime;
84 int32 SelectedInteraction;
85
86 int32 CurrentOverlapActors;
87
88 // EInteractionType SelectionType;
89 // FVector CurrentTraceEnd;
90 // FHitResult CurrentHitResult;
91 // AActor* FocusedActor;
92 FString FocusedActorName;
93 FVector FocusedActorLocation;
94 // AActor* CurrentOverlapActor;
95 FString CurrentOverlapActorName;
96 FVector CurrentOverlapActorLocation;
97 FString InteractionActorName;
98 FVector InteractionActorLocation;
99
100
101
102
103 //~ Aim Assist ~//
104 int32 AimAssistLevel;
105 FAimAssist AimAssistData;
106 TArray<FDebugAssistHit> AimAssistTargets;
107 int32 CurrentTarget;
108 float CameraUp;
109 float CameraRight;
110
111 //~ Grabber ~//
112 bool bHoldingActor;
113 float GrabDistance;
114 bool bRotationMode;
115 FString GrabbedComponentName;
116 FVector TargetLocation;
117 FVector AttachPointLocation;
118
119
120
121 void Serialize(FArchive& Ar);
122 };
123 FRepData DataPack;
124 FRepData ServerDataPack;
125
126};
127
128#endif
DECLARE_LOG_CATEGORY_EXTERN(LogAIToolKit, Display, All)
Represents an aim assist hit.
Definition InteractionData.h:187
AActor * Target
Definition InteractionData.h:196
float Hits
Definition InteractionData.h:194
Structure representing the parameters for aim assist in a game.
Definition InteractionData.h:264