You've already forked LuckyWorld
Optimizing WB_GameWidget
This commit is contained in:
@ -344,6 +344,41 @@ void ULuckyRobotsGameInstance::GetMessageParse(FString Json)
|
||||
}
|
||||
}
|
||||
|
||||
FParsedData ULuckyRobotsGameInstance::DoJsonParse(const FString& JsonString)
|
||||
{
|
||||
FParsedData ParsedData;
|
||||
|
||||
auto VaRestSubsystem = CastChecked<UVaRestSubsystem>(USubsystemBlueprintLibrary::GetEngineSubsystem(UVaRestSubsystem::StaticClass()), ECastCheckedType::NullChecked);
|
||||
|
||||
if (!VaRestSubsystem)
|
||||
{
|
||||
return ParsedData;
|
||||
}
|
||||
|
||||
UVaRestJsonObject* VaRestJsonObject = VaRestSubsystem->ConstructVaRestJsonObject();
|
||||
if (!VaRestJsonObject)
|
||||
{
|
||||
return ParsedData;
|
||||
}
|
||||
|
||||
if (VaRestJsonObject->DecodeJson(JsonString, true))
|
||||
{
|
||||
UVaRestJsonObject* TempJsonObject = VaRestJsonObject->GetObjectField("startup_instructions");
|
||||
if (TempJsonObject)
|
||||
{
|
||||
ParsedData.LevelName = TempJsonObject->GetStringField("level");
|
||||
ParsedData.CharacterName = TempJsonObject->GetStringField("character");
|
||||
ParsedData.Quality = TempJsonObject->GetStringField("quality");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
UE_LOG(LogTemp, Error, TEXT("Parse Problem"));
|
||||
}
|
||||
|
||||
return ParsedData;
|
||||
}
|
||||
|
||||
void ULuckyRobotsGameInstance::SetCurrentFolderName(const FString& FolderName)
|
||||
{
|
||||
CurrentCaptureSettingsData.FolderName = FText::FromString(FolderName);
|
||||
|
@ -177,47 +177,12 @@ void UMainScreenUserWidget::UpdateSelectQuality()
|
||||
BPUpdateSelectQuality();
|
||||
}
|
||||
|
||||
FParsedData UMainScreenUserWidget::DoJsonParse(const FString& JsonString)
|
||||
{
|
||||
FParsedData ParsedData;
|
||||
|
||||
auto VaRestSubsystem = CastChecked<UVaRestSubsystem>(USubsystemBlueprintLibrary::GetEngineSubsystem(UVaRestSubsystem::StaticClass()), ECastCheckedType::NullChecked);
|
||||
|
||||
if (!VaRestSubsystem)
|
||||
{
|
||||
return ParsedData;
|
||||
}
|
||||
|
||||
UVaRestJsonObject* VaRestJsonObject = VaRestSubsystem->ConstructVaRestJsonObject();
|
||||
if (!VaRestJsonObject)
|
||||
{
|
||||
return ParsedData;
|
||||
}
|
||||
|
||||
if (VaRestJsonObject->DecodeJson(JsonString, true))
|
||||
{
|
||||
UVaRestJsonObject* TempJsonObject = VaRestJsonObject->GetObjectField("startup_instructions");
|
||||
if (TempJsonObject)
|
||||
{
|
||||
ParsedData.LevelName = TempJsonObject->GetStringField("level");
|
||||
ParsedData.CharacterName = TempJsonObject->GetStringField("character");
|
||||
ParsedData.Quality = TempJsonObject->GetStringField("quality");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
UE_LOG(LogTemp, Error, TEXT("Parse Problem"));
|
||||
}
|
||||
|
||||
return ParsedData;
|
||||
}
|
||||
|
||||
void UMainScreenUserWidget::OnMessageDispatchedHandler(const FString& Message)
|
||||
{
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
FParsedData ParsedData = DoJsonParse(Message);
|
||||
FParsedData ParsedData = GameInstance->DoJsonParse(Message);
|
||||
if (ParsedData.CharacterName == "DRONE")
|
||||
{
|
||||
GameInstance->CurrentSelectRobot = ERobotsName::LuckyDrone;
|
||||
|
@ -14,3 +14,38 @@ void UGameUserWidget::NativeConstruct()
|
||||
GameInstance->GameUserWidget = this;
|
||||
}
|
||||
}
|
||||
|
||||
void UGameUserWidget::DoWaitSecond()
|
||||
{
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
if (GameInstance->bIsFirstOpenGame)
|
||||
{
|
||||
DownCount = 3;
|
||||
GetWorld()->GetTimerManager().ClearTimer(UpdateDownCountTimerHandle);
|
||||
GetWorld()->GetTimerManager().SetTimer(UpdateDownCountTimerHandle, this, &UGameUserWidget::UpdateDownCount, 1.0f, true);
|
||||
|
||||
UpdateDownCount();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UGameUserWidget::UpdateDownCount()
|
||||
{
|
||||
if (DownCount > 0)
|
||||
{
|
||||
DownCountStr = FString::FromInt(DownCount);
|
||||
DownCount--;
|
||||
}
|
||||
else
|
||||
{
|
||||
DownCountStr = "";
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
GameInstance->DoQualitySettings(0, true);
|
||||
}
|
||||
GetWorld()->GetTimerManager().ClearTimer(UpdateDownCountTimerHandle);
|
||||
}
|
||||
}
|
@ -203,6 +203,9 @@ public:
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void GetMessageParse(FString Json);
|
||||
|
||||
UFUNCTION(BlueprintCallable)
|
||||
FParsedData DoJsonParse(const FString& JsonString);
|
||||
|
||||
public:
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void SetCurrentFolderName(const FString& FolderName);
|
||||
|
@ -79,7 +79,6 @@ public:
|
||||
void UpdateSelectQuality();
|
||||
|
||||
public:
|
||||
FParsedData DoJsonParse(const FString& JsonString);
|
||||
void OnMessageDispatchedHandler(const FString& Message);
|
||||
void DoSendReadyJson();
|
||||
|
||||
|
@ -19,9 +19,32 @@ protected:
|
||||
virtual void NativeConstruct() override;
|
||||
|
||||
public:
|
||||
UFUNCTION(BlueprintImplementableEvent)
|
||||
FTimerHandle UpdateDownCountTimerHandle;
|
||||
|
||||
public:
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
bool bIsCrash;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
bool bIsGoalMenuVis;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
bool bIsTracing;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
int32 DownCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
FString DownCountStr;
|
||||
public:
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void DoWaitSecond();
|
||||
|
||||
void UpdateDownCount();
|
||||
public:
|
||||
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
|
||||
void DoLogItemAdd(const FString& Topic, const FString& MsgText, ELogItemType LogItemType);
|
||||
|
||||
UFUNCTION(BlueprintImplementableEvent)
|
||||
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
|
||||
void DoRefreshListView();
|
||||
};
|
||||
|
Reference in New Issue
Block a user