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

A slot for displaying the Player Replay Clip. More...

#include <ReplaySlot.h>

Inheritance diagram for UReplaySlot:

Public Member Functions

virtual void NativeConstruct () override
 
virtual bool Initialize () override
 
virtual void SetReplayInfo (const FReplayInfo &Replay)
 

Protected Member Functions

void OnTextCommitted (const FText &Text, ETextCommit::Type CommitMethod)
 
void OnPlayClicked ()
 
void OnDeleteClicked ()
 

Protected Attributes

FString ReplayName = "Name"
 
FString ReplayFriendlyName = "FriendlyName"
 
UButton * PlayReplayButton
 
UButton * DeleteReplayButton
 
UEditableTextBox * ReplayNameTextBox
 
UTextBlock * TimestampText
 
UTextBlock * LengthText
 
UTextBlock * FileSizeText
 

Detailed Description

A slot for displaying the Player Replay Clip.

Initialize with SetReplayInfo

Member Function Documentation

◆ Initialize()

bool UReplaySlot::Initialize ( )
overridevirtual
13{
14 const bool bSuccess = Super::Initialize();
15 if (!ensure(PlayReplayButton != nullptr)) return false;
16 if (!ensure(DeleteReplayButton != nullptr)) return false;
17 if (!ensure(ReplayNameTextBox != nullptr)) return false;
18 if (!ensure(TimestampText != nullptr)) return false;
19 if (!ensure(LengthText != nullptr)) return false;
20 if (!ensure(FileSizeText != nullptr)) return false;
21
22 if(!bSuccess) return false;
23
24 ReplayNameTextBox->OnTextCommitted.AddUniqueDynamic(this, &UReplaySlot::OnTextCommitted);
25 PlayReplayButton->OnClicked.AddUniqueDynamic(this, &UReplaySlot::OnPlayClicked);
26 DeleteReplayButton->OnClicked.AddUniqueDynamic(this, &UReplaySlot::OnDeleteClicked);
27 return true;
28}
void OnDeleteClicked()
Definition ReplaySlot.cpp:119
UTextBlock * TimestampText
Definition ReplaySlot.h:47
void OnTextCommitted(const FText &Text, ETextCommit::Type CommitMethod)
Definition ReplaySlot.cpp:97
UTextBlock * FileSizeText
Definition ReplaySlot.h:51
void OnPlayClicked()
Definition ReplaySlot.cpp:110
UButton * DeleteReplayButton
Definition ReplaySlot.h:43
UButton * PlayReplayButton
Definition ReplaySlot.h:41
UEditableTextBox * ReplayNameTextBox
Definition ReplaySlot.h:45
UTextBlock * LengthText
Definition ReplaySlot.h:49

◆ NativeConstruct()

void UReplaySlot::NativeConstruct ( )
overridevirtual
31{
32 Super::NativeConstruct();
33 if(ReplayNameTextBox != nullptr)
34 {
35 if(ReplayFriendlyName.Len() > 0)
36 {
37 ReplayNameTextBox->SetText(FText::FromString(ReplayFriendlyName));
38 }
39 else
40 {
41 ReplayNameTextBox->SetText(FText::FromString(ReplayName));
42 }
43 }
44}
FString ReplayName
Definition ReplaySlot.h:36
FString ReplayFriendlyName
Definition ReplaySlot.h:38

◆ OnDeleteClicked()

void UReplaySlot::OnDeleteClicked ( )
protected
120{
121 IReplayClipInterface* ReplayClipInterface = Cast<IReplayClipInterface>(GetGameInstance());
122 if(ReplayClipInterface != nullptr)
123 {
124 ReplayClipInterface->DeleteReplay(ReplayName);
125 }
126}
Definition ReplayClipInterface.h:20
virtual void DeleteReplay(const FString &ReplayName)=0

◆ OnPlayClicked()

void UReplaySlot::OnPlayClicked ( )
protected
111{
112 IReplayClipInterface* ReplayClipInterface = Cast<IReplayClipInterface>(GetGameInstance());
113 if(ReplayClipInterface != nullptr)
114 {
115 ReplayClipInterface->PlayReplayFromBP(ReplayName);
116 }
117}
virtual void PlayReplayFromBP(FString ReplayName)=0

◆ OnTextCommitted()

void UReplaySlot::OnTextCommitted ( const FText & Text,
ETextCommit::Type CommitMethod )
protected
98{
99 if(CommitMethod != ETextCommit::OnCleared)
100 {
101 IReplayClipInterface* ReplayClipInterface = Cast<IReplayClipInterface>(GetGameInstance());
102 if(ReplayClipInterface != nullptr)
103 {
104 ReplayFriendlyName = Text.ToString();
105 ReplayClipInterface->RenameReplay(ReplayName, ReplayFriendlyName);
106 }
107 }
108}
virtual void RenameReplay(const FString &ReplayName, const FString &NewFriendlyReplayName)=0

◆ SetReplayInfo()

void UReplaySlot::SetReplayInfo ( const FReplayInfo & Replay)
virtual
47{
48 if(!Replay.IsValid()){return;}
49 ReplayName = Replay.ReplayName;
51 if(ReplayNameTextBox != nullptr)
52 {
53 ReplayNameTextBox->SetText(FText::FromString(Replay.FriendlyName));
54 // UE_LOG(LogMenuSystem, Warning, TEXT("Friendly Name: %s Name: %s"), *Replay.FriendlyName, *Replay.ReplayName);
55 // if(Replay.FriendlyName.Len() > 0)
56 // {
57 // }
58 // else
59 // {
60 // ReplayNameTextBox->SetText(FText::FromString(Replay.ReplayName));
61 // }
62 }
63 if(TimestampText != nullptr)
64 {
65 int32 Year = 0000;
66 int32 Month = 01;
67 int32 Day = 01;
68 FNumberFormattingOptions NumberFormatOptions;
69 NumberFormatOptions.SetUseGrouping(false); // This turns off comma separators
70 Replay.Timestamp.GetDate(Year, Month, Day);
71 const FText TimeStamp = FText::Format(NSLOCTEXT("YourNamespace", "TimeFormat", "{0}:{1}:{2}"),
72 FText::AsNumber(Day, &NumberFormatOptions),
73 FText::AsNumber(Month, &NumberFormatOptions),
74 FText::AsNumber(Year, &NumberFormatOptions));
75 TimestampText->SetText(TimeStamp);
76 }
77 if(LengthText != nullptr)
78 {
79 const int32 CurrentTimeInSeconds = (Replay.LengthInMS / 1000);
80 const int32 Minutes = CurrentTimeInSeconds / 60;
81 const int32 Seconds = CurrentTimeInSeconds % 60;
82 const FText Length = FText::Format(NSLOCTEXT("YourNamespace", "TimeFormat", "{0}:{1}"),
83 FText::AsNumber(Minutes),
84 FText::AsNumber(Seconds));
85 LengthText->SetText(Length);
86 }
87 if(FileSizeText != nullptr)
88 {
89 const int32 Kilobytes = (Replay.SizeInBytes / 1000);
90 const int32 Megabytes = (Kilobytes / 1000);
91 const FText FileSize = FText::FromString(FString::FromInt(Kilobytes) + " KB");
92 FileSizeText->SetText(FileSize);
93 }
94 //@TODO Set Vars
95}
FString ReplayName
Definition MenuData.h:321
bool IsValid() const
Definition MenuData.h:364
int32 LengthInMS
Definition MenuData.h:330
FString FriendlyName
Definition MenuData.h:324
FDateTime Timestamp
Definition MenuData.h:327
int64 SizeInBytes
Definition MenuData.h:336

Member Data Documentation

◆ DeleteReplayButton

UButton* UReplaySlot::DeleteReplayButton
protected

◆ FileSizeText

UTextBlock* UReplaySlot::FileSizeText
protected

◆ LengthText

UTextBlock* UReplaySlot::LengthText
protected

◆ PlayReplayButton

UButton* UReplaySlot::PlayReplayButton
protected

◆ ReplayFriendlyName

FString UReplaySlot::ReplayFriendlyName = "FriendlyName"
protected

◆ ReplayName

FString UReplaySlot::ReplayName = "Name"
protected

◆ ReplayNameTextBox

UEditableTextBox* UReplaySlot::ReplayNameTextBox
protected

◆ TimestampText

UTextBlock* UReplaySlot::TimestampText
protected

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