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

#include <AchievementWidget.h>

Inheritance diagram for UAchievementWidget:

Public Member Functions

 UAchievementWidget (const FObjectInitializer &ObjectInitializer)
 
void CreateAchievement (const FString &APIName)
 
void SetAchievementProgress (const int32 Value)
 
FString GetStatName () const
 
int32 GetStatMax () const
 
float GetAchievementProgress (const int32 Value) const
 

Protected Member Functions

virtual bool Initialize () override
 
void OnAchievementDataSet (const bool bGetProgress)
 

Protected Attributes

FString AchievementAPIName = ""
 
FString AchievementName = ""
 
FString AchievementDescription = ""
 
bool bHidden = false
 
bool bUnlocked = false
 
FDateTime UnlockedTime
 
FString ProgressKey = "PROGRESS_"
 
FString ValueKey = "_"
 
class UTextBlock * NameTextBlock = nullptr
 
class UTextBlock * DateTextBlock = nullptr
 
class UTextBlock * DescriptionTextBlock = nullptr
 
class UImage * AchievementImage = nullptr
 
class UTextBlock * PercentTextBlock = nullptr
 
class UTextBlock * GlobalPercentTextBlock = nullptr
 
UProgressBar * ProgressBar = nullptr
 

Constructor & Destructor Documentation

◆ UAchievementWidget()

UAchievementWidget::UAchievementWidget ( const FObjectInitializer & ObjectInitializer)
explicit
13 :Super(ObjectInitializer)
14{
15
16}

Member Function Documentation

◆ CreateAchievement()

void UAchievementWidget::CreateAchievement ( const FString & APIName)
Parameters
APINameThe Achievement Name on STEAM
33{
34 AchievementAPIName = APIName;
35 AchievementName = UGetAchievementData::GetAchievementDisplayAttribute(AchievementAPIName, EAchievementDisplayAttributeUE4::ADA_EAttributeName);
36 NameTextBlock->SetText(FText::FromString(AchievementName));
37 AchievementDescription = UGetAchievementData::GetAchievementDisplayAttribute(AchievementAPIName, EAchievementDisplayAttributeUE4::ADA_EAttributeDescription);
38 DescriptionTextBlock->SetText(FText::FromString(AchievementDescription));
39 bHidden = UGetAchievementData::GetAchievementDisplayAttribute(AchievementAPIName, EAchievementDisplayAttributeUE4::ADA_EAttributeHidden) == "1";
41 if(bUnlocked)
42 {
43 const FText UnlockedTimeText = FText::AsDate(UnlockedTime.GetDate());
44 const FText FormattedTime = FText::Format(NSLOCTEXT("","","Unlocked On: {0}"),
45 UnlockedTimeText);
46 DateTextBlock->SetText(FormattedTime);
47 DateTextBlock->SetVisibility(ESlateVisibility::Visible);
48 }
49 else
50 {
51 DateTextBlock->SetVisibility(ESlateVisibility::Collapsed);
52 }
55 const FText FormattedGlobalPercent = FText::Format(NSLOCTEXT("","","{0} / 100%"),
56 FText::AsNumber(GlobalPercent));
57 GlobalPercentTextBlock->SetText(FormattedGlobalPercent);
58 //@TODO Get Percent of Achievement
59
61 {
63 }
64 else
65 {
66 PercentTextBlock->SetVisibility(ESlateVisibility::Collapsed);
67 ProgressBar->SetVisibility(ESlateVisibility::Collapsed);
69 }
70}
bool bUnlocked
Definition AchievementWidget.h:51
class UImage * AchievementImage
Definition AchievementWidget.h:68
class UTextBlock * DateTextBlock
Definition AchievementWidget.h:64
class UTextBlock * NameTextBlock
Definition AchievementWidget.h:62
FString AchievementName
Definition AchievementWidget.h:45
class UTextBlock * GlobalPercentTextBlock
Definition AchievementWidget.h:72
UProgressBar * ProgressBar
Definition AchievementWidget.h:74
FString AchievementAPIName
Definition AchievementWidget.h:43
FDateTime UnlockedTime
Definition AchievementWidget.h:53
FString ProgressKey
Definition AchievementWidget.h:55
void OnAchievementDataSet(const bool bGetProgress)
FString AchievementDescription
Definition AchievementWidget.h:47
class UTextBlock * PercentTextBlock
Definition AchievementWidget.h:70
class UTextBlock * DescriptionTextBlock
Definition AchievementWidget.h:66
bool bHidden
Definition AchievementWidget.h:49
static UTexture2D * GetAchievementIcon(FString AchievementAPIName)
Definition GetAchievementData.cpp:20
static void GetAchievementUnlockStatusAndUnlockTime(FString AchievementAPIName, bool &AchievementUnlocked, FDateTime &UnlockTime)
Definition GetAchievementData.cpp:49
static FString GetAchievementDisplayAttribute(FString AchievementAPIName, EAchievementDisplayAttributeUE4 Attribute)
Definition GetAchievementData.cpp:73
static float GetGlobalAchievementAchievedPercent(FString AchievementAPIName)
Definition GetAchievementData.cpp:61

◆ GetAchievementProgress()

float UAchievementWidget::GetAchievementProgress ( const int32 Value) const
110{
111 const float StatMax = static_cast<float>(GetStatMax());
112 if(StatMax == 0)
113 {
114 UE_LOG(LogTemp, Warning, TEXT("UAchievementWidget::GetStatMax() returned zero."));
115 return 0.0f;
116 }
117 return static_cast<float>(Value) / static_cast<float>(GetStatMax());
118}
int32 GetStatMax() const
Definition AchievementWidget.cpp:98

◆ GetStatMax()

int32 UAchievementWidget::GetStatMax ( ) const
99{
100 FString RightString;
101 FString LeftString;
102 AchievementAPIName.Split(ProgressKey, &LeftString, &RightString, ESearchCase::CaseSensitive);
103 FString StatName;
104 FString StatTotal;
105 RightString.Split(ValueKey, &StatName, &StatTotal, ESearchCase::CaseSensitive);
106 return UKismetStringLibrary::Conv_StringToInt(StatTotal);
107}
FString ValueKey
Definition AchievementWidget.h:57

◆ GetStatName()

FString UAchievementWidget::GetStatName ( ) const
85{
86 FString RightString;
87 FString LeftString;
88 AchievementAPIName.Split(ProgressKey, &LeftString, &RightString, ESearchCase::CaseSensitive);
89 FString StatName;
90 FString StatTotal;
91 RightString.Split(ValueKey, &StatName, &StatTotal, ESearchCase::CaseSensitive);
92 FString StatNameUnderscore = StatName;
93 StatNameUnderscore.Append("_");
94 StatNameUnderscore.Append(StatName);
95 return StatNameUnderscore;
96}

◆ Initialize()

bool UAchievementWidget::Initialize ( )
overrideprotectedvirtual
19{
20 const bool bSuccess = Super::Initialize();
21 if (!ensure(NameTextBlock != nullptr)) return false;
22 if (!ensure(DateTextBlock != nullptr)) return false;
23 if (!ensure(DescriptionTextBlock != nullptr)) return false;
24 if (!ensure(AchievementImage != nullptr)) return false;
25 if (!ensure(PercentTextBlock != nullptr)) return false;
26 if (!ensure(GlobalPercentTextBlock != nullptr)) return false;
27 if (!ensure(ProgressBar != nullptr)) return false;
28 if(!bSuccess) return false;
29 return true;
30}

◆ OnAchievementDataSet()

void UAchievementWidget::OnAchievementDataSet ( const bool bGetProgress)
protected

◆ SetAchievementProgress()

void UAchievementWidget::SetAchievementProgress ( const int32 Value)
73{
74 const FText FormattedProgress = FText::Format(NSLOCTEXT("","","{0} / {1}"),
75 FText::AsNumber(Value),
76 FText::AsNumber(GetStatMax()));
77
78 PercentTextBlock->SetText(FormattedProgress);
79 PercentTextBlock->SetVisibility(ESlateVisibility::Visible);
80 ProgressBar->SetPercent(GetAchievementProgress(Value));
81 ProgressBar->SetVisibility(ESlateVisibility::Visible);
82}
float GetAchievementProgress(const int32 Value) const
Definition AchievementWidget.cpp:109

Member Data Documentation

◆ AchievementAPIName

FString UAchievementWidget::AchievementAPIName = ""
protected

◆ AchievementDescription

FString UAchievementWidget::AchievementDescription = ""
protected

◆ AchievementImage

class UImage* UAchievementWidget::AchievementImage = nullptr
protected

◆ AchievementName

FString UAchievementWidget::AchievementName = ""
protected

◆ bHidden

bool UAchievementWidget::bHidden = false
protected

◆ bUnlocked

bool UAchievementWidget::bUnlocked = false
protected

◆ DateTextBlock

class UTextBlock* UAchievementWidget::DateTextBlock = nullptr
protected

◆ DescriptionTextBlock

class UTextBlock* UAchievementWidget::DescriptionTextBlock = nullptr
protected

◆ GlobalPercentTextBlock

class UTextBlock* UAchievementWidget::GlobalPercentTextBlock = nullptr
protected

◆ NameTextBlock

class UTextBlock* UAchievementWidget::NameTextBlock = nullptr
protected

◆ PercentTextBlock

class UTextBlock* UAchievementWidget::PercentTextBlock = nullptr
protected

◆ ProgressBar

UProgressBar* UAchievementWidget::ProgressBar = nullptr
protected

◆ ProgressKey

FString UAchievementWidget::ProgressKey = "PROGRESS_"
protected

◆ UnlockedTime

FDateTime UAchievementWidget::UnlockedTime
protected

◆ ValueKey

FString UAchievementWidget::ValueKey = "_"
protected

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