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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user