Space Plunder
Loading...
Searching...
No Matches
UWaypointWidget Class Reference

#include <WaypointWidget.h>

Inheritance diagram for UWaypointWidget:

Public Member Functions

virtual void ActorConstruct ()
 
void SetWaypointActor (AActor *Actor)
 
float GetDistance (const bool bMeters=true) const
 

Protected Member Functions

virtual bool Initialize () override
 
virtual void NativeConstruct () override
 
virtual void NativePreConstruct () override
 
void SetDistanceText () const
 

Protected Attributes

class UImage * WaypointIcon
 
class UTextBlock * DistanceTextBlock
 
class UTextBlock * ContextTextBlock
 
bool bUseDistance = true
 
float DistanceUpdateSpeed = 0.5f
 
float HideDistance = 10.0f
 
bool bDebuggingMode = false
 
AActor * WaypointActor
 

Private Attributes

FTimerHandle DistanceTimerHandle
 
FNumberFormattingOptions NumberFormatOptions
 

Member Function Documentation

◆ ActorConstruct()

void UWaypointWidget::ActorConstruct ( )
virtual
41{
42 if(bUseDistance && GetWorld() != nullptr)
43 {
44 NumberFormatOptions.SetUseGrouping(false); // This turns off comma separators
45 GetWorld()->GetTimerManager().SetTimer(DistanceTimerHandle, this, &UWaypointWidget::SetDistanceText, DistanceUpdateSpeed, true, 0.0f);
46 }
47}
void SetDistanceText() const
Definition WaypointWidget.cpp:49
FTimerHandle DistanceTimerHandle
Definition WaypointWidget.h:65
bool bUseDistance
Definition WaypointWidget.h:43
float DistanceUpdateSpeed
Definition WaypointWidget.h:45
FNumberFormattingOptions NumberFormatOptions
Definition WaypointWidget.h:66

◆ GetDistance()

float UWaypointWidget::GetDistance ( const bool bMeters = true) const
65{
66 if(GetOwningPlayer() == nullptr || GetOwningPlayer()->GetPawn() == nullptr)
67 {
68 if(bDebuggingMode){UE_LOG(LogBaseHelpers, Error, TEXT("Error getting Pawn for Distance, Waypoint Widget"));}
69 return -999.0f;
70 }
71
72 if(GetOwningPlayer()->GetPawn() != nullptr && WaypointActor != nullptr)
73 {
74 const float Distance = UKismetMathLibrary::Vector_Distance(GetOwningPlayer()->GetPawn()->GetActorLocation(), WaypointActor->GetActorLocation());
75 if(bMeters)
76 {
77 if(Distance == 0.0f)
78 {
79 return 0.0f;
80 }
81 return (Distance / 100.0f);
82 }
83 return Distance;
84 }
85 if(bDebuggingMode){UE_LOG(LogTemp, Warning, TEXT("Get Distance Failed"));}
86 return 0.0f;
87}
bool bDebuggingMode
Definition WaypointWidget.h:54
AActor * WaypointActor
Definition WaypointWidget.h:58

◆ Initialize()

bool UWaypointWidget::Initialize ( )
overrideprotectedvirtual
11{
12 const bool Success = Super::Initialize();
13 if(!Success) return false;
14 if (!ensure(ContextTextBlock != nullptr)) return false;
15 if (!ensure(WaypointIcon != nullptr)) return false;
16 if (!ensure(DistanceTextBlock != nullptr)) return false;
17
18 return true;
19}
class UTextBlock * ContextTextBlock
Definition WaypointWidget.h:40
class UImage * WaypointIcon
Definition WaypointWidget.h:36
class UTextBlock * DistanceTextBlock
Definition WaypointWidget.h:38

◆ NativeConstruct()

void UWaypointWidget::NativeConstruct ( )
overrideprotectedvirtual
22{
23 Super::NativeConstruct();
24 SetVisibility(ESlateVisibility::Hidden);
25 if(ContextTextBlock->GetText().IsEmpty())
26 {
27 ContextTextBlock->SetVisibility(ESlateVisibility::Hidden);
28 }
29 else
30 {
31 ContextTextBlock->SetVisibility(ESlateVisibility::Visible);
32 }
33}

◆ NativePreConstruct()

void UWaypointWidget::NativePreConstruct ( )
overrideprotectedvirtual
36{
37 Super::NativePreConstruct();
38}

◆ SetDistanceText()

void UWaypointWidget::SetDistanceText ( ) const
protected
50{
51 if(GetDistance(true) < HideDistance)
52 {
53 DistanceTextBlock->SetVisibility(ESlateVisibility::Hidden);
54 }
55 else
56 {
57 DistanceTextBlock->SetVisibility(ESlateVisibility::Visible);
58 }
59 const FText DistanceText = FText::Format(NSLOCTEXT("YourNamespace","DistanceFormat" , "{0} m"),
60 FText::AsNumber(FMath::RoundToInt(GetDistance(true)), &NumberFormatOptions));
61 DistanceTextBlock->SetText(DistanceText);
62}
float HideDistance
Definition WaypointWidget.h:48
float GetDistance(const bool bMeters=true) const
Definition WaypointWidget.cpp:64

◆ SetWaypointActor()

void UWaypointWidget::SetWaypointActor ( AActor * Actor)
inline
21{WaypointActor = Actor;};

Member Data Documentation

◆ bDebuggingMode

bool UWaypointWidget::bDebuggingMode = false
protected

◆ bUseDistance

bool UWaypointWidget::bUseDistance = true
protected

◆ ContextTextBlock

class UTextBlock* UWaypointWidget::ContextTextBlock
protected

◆ DistanceTextBlock

class UTextBlock* UWaypointWidget::DistanceTextBlock
protected

◆ DistanceTimerHandle

FTimerHandle UWaypointWidget::DistanceTimerHandle
private

The player who made this waypoint

◆ DistanceUpdateSpeed

float UWaypointWidget::DistanceUpdateSpeed = 0.5f
protected

◆ HideDistance

float UWaypointWidget::HideDistance = 10.0f
protected

Once this close, the Distance text will hide

◆ NumberFormatOptions

FNumberFormattingOptions UWaypointWidget::NumberFormatOptions
private

◆ WaypointActor

AActor* UWaypointWidget::WaypointActor
protected

This is the Actor in 3D space of the Waypoint

◆ WaypointIcon

class UImage* UWaypointWidget::WaypointIcon
protected

The documentation for this class was generated from the following files: