6#if WITH_GAMEPLAY_DEBUGGER
8#include "CoreMinimal.h"
9#include "GameplayDebuggerCategory.h"
12class APlayerController;
18class FGameplayDebuggerCategory_Health :
public FGameplayDebuggerCategory
22 FGameplayDebuggerCategory_Health();
24 virtual void CollectData(APlayerController* OwnerPC, AActor* DebugActor)
override;
26 virtual void CollectHealthData(AActor* SelectedActor);
27 virtual void CollectServerHealthData(APlayerController* OwnerPC);
29 virtual void DrawData(APlayerController* OwnerPC, FGameplayDebuggerCanvasContext& CanvasContext)
override;
31 static TSharedRef<FGameplayDebuggerCategory> MakeInstance();
33 void ToggleBodyPartsHealth();
34 void ToggleBodyPartsHighlight();
46 float CurrentPartHealth;
52 FDebugBodyPart(
const FString& Name,
const FName& Start,
const FName& End,
const float CurrentHealth)
57 CurrentPartHealth = CurrentHealth;
59 friend FArchive& operator<<(FArchive& Ar, FDebugBodyPart& BodyPart);
61 bool operator==(
const FDebugBodyPart&
Other)
const
63 return PartName ==
Other.PartName;
76 bool GetDrawLocation(
const FName& Start,
const FName& End, AActor& DebugActor,
const FGameplayDebuggerCanvasContext& CanvasContext,
const FString& String,
float& PosX,
float& PosY);
86 bool bCanBeKnockedOut;
88 float BodyPartMaxHealth;
89 float BodyPartInjuredHealth;
91 TArray<FDebugBodyPart> BodyParts;
96 void Serialize(FArchive& Ar);
100 FRepData ServerDataPack;
101 int32 SelectedBodyPart = 0;
102 bool bShowServerValues =
false;
103 bool bDebugActorHasController =
false;