diff --git a/Content/Blueprint/RobotPawnActors/BP_RevoluteRobot.uasset b/Content/Blueprint/RobotPawnActors/BP_RevoluteRobot.uasset index 2a3fa1c0..29d733e1 100644 Binary files a/Content/Blueprint/RobotPawnActors/BP_RevoluteRobot.uasset and b/Content/Blueprint/RobotPawnActors/BP_RevoluteRobot.uasset differ diff --git a/Content/Blueprint/RobotPawnActors/BP_WheeledRobot.uasset b/Content/Blueprint/RobotPawnActors/BP_WheeledRobot.uasset index 28af7541..e276f41f 100644 Binary files a/Content/Blueprint/RobotPawnActors/BP_WheeledRobot.uasset and b/Content/Blueprint/RobotPawnActors/BP_WheeledRobot.uasset differ diff --git a/Content/Blueprint/component/BPC_DataTrasnfer.uasset b/Content/Blueprint/component/BPC_DataTrasnfer.uasset index ef411136..a4554499 100644 Binary files a/Content/Blueprint/component/BPC_DataTrasnfer.uasset and b/Content/Blueprint/component/BPC_DataTrasnfer.uasset differ diff --git a/Content/Blueprint/oldRobotsBP/BP_DJI_DroneMovementBluePrint.uasset b/Content/Blueprint/oldRobotsBP/BP_DJI_DroneMovementBluePrint.uasset index 5b55f4ce..a0d8a229 100644 Binary files a/Content/Blueprint/oldRobotsBP/BP_DJI_DroneMovementBluePrint.uasset and b/Content/Blueprint/oldRobotsBP/BP_DJI_DroneMovementBluePrint.uasset differ diff --git a/Content/Blueprint/oldRobotsBP/BP_WheeledRobot.uasset b/Content/Blueprint/oldRobotsBP/BP_WheeledRobot.uasset index 4227127f..6e39a987 100644 Binary files a/Content/Blueprint/oldRobotsBP/BP_WheeledRobot.uasset and b/Content/Blueprint/oldRobotsBP/BP_WheeledRobot.uasset differ diff --git a/Content/Blueprint/vehicle/StretchRobot_vehicle_BP.uasset b/Content/Blueprint/vehicle/StretchRobot_vehicle_BP.uasset index a295091a..f24ebe42 100644 Binary files a/Content/Blueprint/vehicle/StretchRobot_vehicle_BP.uasset and b/Content/Blueprint/vehicle/StretchRobot_vehicle_BP.uasset differ diff --git a/Content/GameBP/Core/BP_LuckyRobotsGameInstance.uasset b/Content/GameBP/Core/BP_LuckyRobotsGameInstance.uasset index 8988116a..9b89357e 100644 Binary files a/Content/GameBP/Core/BP_LuckyRobotsGameInstance.uasset and b/Content/GameBP/Core/BP_LuckyRobotsGameInstance.uasset differ diff --git a/Content/GameBP/FunctionLibraries/BP_LuckyRobotsLibrary.uasset b/Content/GameBP/FunctionLibraries/BP_LuckyRobotsLibrary.uasset index e774a9cd..aaffcf85 100644 Binary files a/Content/GameBP/FunctionLibraries/BP_LuckyRobotsLibrary.uasset and b/Content/GameBP/FunctionLibraries/BP_LuckyRobotsLibrary.uasset differ diff --git a/Content/GameBP/Menus/WB_MainScreen.uasset b/Content/GameBP/Menus/WB_MainScreen.uasset index 16765213..9a7d5400 100644 Binary files a/Content/GameBP/Menus/WB_MainScreen.uasset and b/Content/GameBP/Menus/WB_MainScreen.uasset differ diff --git a/Content/GameBP/UI/Settings/WB_CaptureSettings.uasset b/Content/GameBP/UI/Settings/WB_CaptureSettings.uasset index 2db07bec..7267853f 100644 Binary files a/Content/GameBP/UI/Settings/WB_CaptureSettings.uasset and b/Content/GameBP/UI/Settings/WB_CaptureSettings.uasset differ diff --git a/Content/GameBP/UI/WB_GameWidget.uasset b/Content/GameBP/UI/WB_GameWidget.uasset index a9893f14..410589fc 100644 Binary files a/Content/GameBP/UI/WB_GameWidget.uasset and b/Content/GameBP/UI/WB_GameWidget.uasset differ diff --git a/Content/luckyBot/Luckywidget/ChildItems/WB_ObjectsListCheckbox.uasset b/Content/luckyBot/Luckywidget/ChildItems/WB_ObjectsListCheckbox.uasset index 15dcbc60..0669ca82 100644 Binary files a/Content/luckyBot/Luckywidget/ChildItems/WB_ObjectsListCheckbox.uasset and b/Content/luckyBot/Luckywidget/ChildItems/WB_ObjectsListCheckbox.uasset differ diff --git a/Content/luckyBot/Luckywidget/menu/WB_SelectGoalMenu.uasset b/Content/luckyBot/Luckywidget/menu/WB_SelectGoalMenu.uasset index cdd204ce..dd66ad7a 100644 Binary files a/Content/luckyBot/Luckywidget/menu/WB_SelectGoalMenu.uasset and b/Content/luckyBot/Luckywidget/menu/WB_SelectGoalMenu.uasset differ diff --git a/Plugins/SocketIOClient/Source/SIOJson/Public/SIOJRequestJSON.h b/Plugins/SocketIOClient/Source/SIOJson/Public/SIOJRequestJSON.h index c4fd92b6..7353a0a4 100644 --- a/Plugins/SocketIOClient/Source/SIOJson/Public/SIOJRequestJSON.h +++ b/Plugins/SocketIOClient/Source/SIOJson/Public/SIOJRequestJSON.h @@ -73,11 +73,11 @@ public: /** Generate a delegates for callback events */ -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnRequestComplete, class USIOJRequestJSON*, Request); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnRequestFail, class USIOJRequestJSON*, Request); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSIOJOnRequestComplete, class USIOJRequestJSON*, Request); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSIOJOnRequestFail, class USIOJRequestJSON*, Request); -DECLARE_MULTICAST_DELEGATE_OneParam(FOnStaticRequestComplete, class USIOJRequestJSON*); -DECLARE_MULTICAST_DELEGATE_OneParam(FOnStaticRequestFail, class USIOJRequestJSON*); +DECLARE_MULTICAST_DELEGATE_OneParam(FSIOJOnStaticRequestComplete, class USIOJRequestJSON*); +DECLARE_MULTICAST_DELEGATE_OneParam(FSIOJOnStaticRequestFail, class USIOJRequestJSON*); /** @@ -216,17 +216,17 @@ private: public: /** Event occured when the request has been completed */ UPROPERTY(BlueprintAssignable, Category = "SIOJ|Event") - FOnRequestComplete OnRequestComplete; + FSIOJOnRequestComplete OnRequestComplete; /** Event occured when the request wasn't successfull */ UPROPERTY(BlueprintAssignable, Category = "SIOJ|Event") - FOnRequestFail OnRequestFail; + FSIOJOnRequestFail OnRequestFail; /** Event occured when the request has been completed */ - FOnStaticRequestComplete OnStaticRequestComplete; + FSIOJOnStaticRequestComplete OnStaticRequestComplete; /** Event occured when the request wasn't successfull */ - FOnStaticRequestFail OnStaticRequestFail; + FSIOJOnStaticRequestFail OnStaticRequestFail; ////////////////////////////////////////////////////////////////////////// diff --git a/Source/Luckyrobots/Private/Core/LuckyRobotsGameInstance.cpp b/Source/Luckyrobots/Private/Core/LuckyRobotsGameInstance.cpp index 8ceb3dd2..10a55efd 100644 --- a/Source/Luckyrobots/Private/Core/LuckyRobotsGameInstance.cpp +++ b/Source/Luckyrobots/Private/Core/LuckyRobotsGameInstance.cpp @@ -9,6 +9,8 @@ #include "GameFramework/GameUserSettings.h" #include "Kismet/KismetMathLibrary.h" #include "FunctionLibraries/LuckyRobotsFunctionLibrary.h" +#include "VaRestSubsystem.h" +#include "Subsystems/SubsystemBlueprintLibrary.h" void ULuckyRobotsGameInstance::DoSendMessage(const FString& SendValue) { @@ -284,6 +286,99 @@ TArray ULuckyRobotsGameInstance::GetSelectableItemList(EIte return SelectableItemList; } +void ULuckyRobotsGameInstance::GetMessageParse(FString Json) +{ + auto VaRestSubsystem = CastChecked(USubsystemBlueprintLibrary::GetEngineSubsystem(UVaRestSubsystem::StaticClass()), ECastCheckedType::NullChecked); + if (VaRestSubsystem) + { + UVaRestJsonObject* VaRestJsonObject = VaRestSubsystem->ConstructVaRestJsonObject(); + if (VaRestJsonObject) + { + if (VaRestJsonObject->DecodeJson(Json, true)) + { + TArray VaRestJsonValueList = VaRestJsonObject->GetArrayField("LuckyCode"); + if (VaRestJsonValueList.Num() > 0) + { + LuckyCodeList.Empty(); + for (auto VaRestJsonValue : VaRestJsonValueList) + { + if (VaRestJsonValue) + { + UVaRestJsonObject* TempObject = VaRestJsonValue->AsObject(); + if (TempObject) + { + FLuckyCode TempLuckyCode; + TempLuckyCode.ID = FCString::Atoi(*(TempObject->GetStringField("ID"))); + TempLuckyCode.Code = TempObject->GetStringField("code"); + TempLuckyCode.Time = FCString::Atof(*(TempObject->GetStringField("time"))); + TempLuckyCode.bCallback = (TempObject->GetStringField("callback") == "on"); + LuckyCodeList.Add(TempLuckyCode); + } + } + } + } + else + { + UVaRestJsonValue* VaRestJsonValue = VaRestJsonObject->GetField("LuckyCapture"); + if (VaRestJsonValue) + { + UVaRestJsonObject* TempObject = VaRestJsonValue->AsObject(); + if (TempObject) + { + bIsCapture = (TempObject->GetStringField("capture") == "on"); + bIsCaptureHand = (TempObject->GetStringField("is_capture_hand") == "on"); + bIsCaptureHead = (TempObject->GetStringField("is_capture_head") == "on"); + bScenarioCapture = (TempObject->GetStringField("scenario_capture") == "on"); + TargetPosition = FTransform(); + SetCurrentFileName(TempObject->GetStringField("file_name")); + SetCurrentFolderName(TempObject->GetStringField("folder_name")); + SetCurrentCaptureNumber(FCString::Atoi(*TempObject->GetStringField("capture_name"))); + SetCurrentIsInfiniteCapture(TempObject->GetStringField("infinite_capture") == "on"); + SetCurrentWritesPerSec(FCString::Atoi(*TempObject->GetStringField("per_second"))); + SetCurrentIsRandomPeople(TempObject->GetStringField("random_people") == "on"); + } + } + } + } + } + } +} + +FParsedData ULuckyRobotsGameInstance::DoJsonParse(const FString& JsonString) +{ + FParsedData ParsedData; + + auto VaRestSubsystem = CastChecked(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); diff --git a/Source/Luckyrobots/Private/GameModes/LuckyRobotsGameMode.cpp b/Source/Luckyrobots/Private/GameModes/LuckyRobotsGameMode.cpp index 199ba271..ff7d1bc1 100644 --- a/Source/Luckyrobots/Private/GameModes/LuckyRobotsGameMode.cpp +++ b/Source/Luckyrobots/Private/GameModes/LuckyRobotsGameMode.cpp @@ -16,7 +16,8 @@ UClass* ALuckyRobotsGameMode::GetDefaultPawnClassForController_Implementation(AC UClass* RobotClass = Super::GetDefaultPawnClassForController_Implementation(InController); ERobotsName CurrentRobot = ERobotsName::None; - if (ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance())) + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) { CurrentRobot = GameInstance->CurrentSelectRobot; } diff --git a/Source/Luckyrobots/Private/GameModes/LuckyRobotsGameState.cpp b/Source/Luckyrobots/Private/GameModes/LuckyRobotsGameState.cpp index dfe75858..84a0d745 100644 --- a/Source/Luckyrobots/Private/GameModes/LuckyRobotsGameState.cpp +++ b/Source/Luckyrobots/Private/GameModes/LuckyRobotsGameState.cpp @@ -5,6 +5,7 @@ #include "SocketIOClientComponent.h" #include "FunctionLibraries/LuckyRobotsFunctionLibrary.h" #include "Core/LuckyRobotsGameInstance.h" +#include "SIOJLibrary.h" ALuckyRobotsGameState::ALuckyRobotsGameState() { @@ -41,6 +42,7 @@ void ALuckyRobotsGameState::DoSocketOnGenericEvent(FString EventName, USIOJsonVa { if (ULuckyRobotsGameInstance* GameInstance = ULuckyRobotsFunctionLibrary::GetLuckyRobotsGameInstance(this)) { - GameInstance->DoGetDispatch(EventName, EventData); + GameInstance->OnMessageDispatched.Broadcast(EventName); + GameInstance->GetMessageParse(USIOJLibrary::Conv_SIOJsonValueToString(EventData)); } } diff --git a/Source/Luckyrobots/Private/Menus/MainScreenUserWidget.cpp b/Source/Luckyrobots/Private/Menus/MainScreenUserWidget.cpp index 6e101190..bbd5b158 100644 --- a/Source/Luckyrobots/Private/Menus/MainScreenUserWidget.cpp +++ b/Source/Luckyrobots/Private/Menus/MainScreenUserWidget.cpp @@ -5,11 +5,25 @@ #include "Engine/DataTable.h" #include "Core/LuckyRobotsGameInstance.h" #include "FunctionLibraries/LuckyRobotsFunctionLibrary.h" +#include "Subsystems/SubsystemBlueprintLibrary.h" +#include "VaRestSubsystem.h" +#include void UMainScreenUserWidget::NativeConstruct() { Super::NativeConstruct(); InitData(); + + DoSendReadyJson(); + + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) + { + GameInstance->bIsFirstOpenGame = false; + GameInstance->DoResolutionChange(bIsFullScreen); + + GameInstance->OnMessageDispatched.AddDynamic(this, &UMainScreenUserWidget::OnMessageDispatchedHandler); + } } void UMainScreenUserWidget::InitData() @@ -17,7 +31,8 @@ void UMainScreenUserWidget::InitData() InitRobotData(); InitLevelData(); - if (ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance())) + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) { CurrentQualityIndex = static_cast(GameInstance->CurrentSelectQuality); } @@ -108,9 +123,33 @@ void UMainScreenUserWidget::SelectPreviousQuality() UpdateSelectQuality(); } +void UMainScreenUserWidget::DoResolutionChange() +{ + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) + { + bIsFullScreen = !bIsFullScreen; + GameInstance->DoResolutionChange(bIsFullScreen); + } +} + +void UMainScreenUserWidget::GameStart() +{ + if (UKismetSystemLibrary::IsValidSoftObjectReference(CurrentSelectLevelObject)) + { + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) + { + GameInstance->bIsFirstOpenGame = true; + UGameplayStatics::OpenLevelBySoftObjectPtr(this, CurrentSelectLevelObject); + } + } +} + void UMainScreenUserWidget::UpdateSelectRobot() { - if (ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance())) + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) { GameInstance->CurrentSelectRobot = GetCurrentRobotData().Name; } @@ -120,7 +159,8 @@ void UMainScreenUserWidget::UpdateSelectRobot() void UMainScreenUserWidget::UpdateSelectLevel() { - if (ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance())) + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) { GameInstance->CurrentSelectLevel = GetCurrentLevelData().LevelEnum; } @@ -129,9 +169,75 @@ void UMainScreenUserWidget::UpdateSelectLevel() void UMainScreenUserWidget::UpdateSelectQuality() { - if (ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance())) + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) { GameInstance->CurrentSelectQuality = static_cast(CurrentQualityIndex); } BPUpdateSelectQuality(); } + +void UMainScreenUserWidget::OnMessageDispatchedHandler(const FString& Message) +{ + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) + { + FParsedData ParsedData = GameInstance->DoJsonParse(Message); + if (ParsedData.CharacterName == "DRONE") + { + GameInstance->CurrentSelectRobot = ERobotsName::LuckyDrone; + }else if(ParsedData.CharacterName == "Stretch Robot V1") + { + GameInstance->CurrentSelectRobot = ERobotsName::StretchRobotV1; + } + + GameInstance->bIsFirstOpenGame = true; + + ELevelEnum TempLevelEnum = ELevelEnum::None; + if (ParsedData.LevelName == "LOFT") + { + TempLevelEnum = ELevelEnum::Loft; + }else if(ParsedData.LevelName == "ISTANBUL") + { + TempLevelEnum = ELevelEnum::Istanbul; + } + + if (TempLevelEnum != ELevelEnum::None) + { + TArray TempLevelDataList = ULuckyRobotsFunctionLibrary::GetActiveLevelDataList(this); + for (const FLevelData& LevelData : TempLevelDataList) + { + if (LevelData.LevelEnum == TempLevelEnum && LevelData.LevelObject) + { + UGameplayStatics::OpenLevelBySoftObjectPtr(this, LevelData.LevelObject); + break; + } + } + } + } +} + +void UMainScreenUserWidget::DoSendReadyJson() +{ + auto VaRestSubsystem = CastChecked(USubsystemBlueprintLibrary::GetEngineSubsystem(UVaRestSubsystem::StaticClass()), ECastCheckedType::NullChecked); + + if (!VaRestSubsystem) + { + return; + } + + UVaRestJsonObject* VaRestJsonObject = VaRestSubsystem->ConstructVaRestJsonObject(); + if (!VaRestJsonObject) + { + return; + } + + VaRestJsonObject->SetStringField("name", "game_is_loaded"); + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) + { + FString SendedString = VaRestJsonObject->EncodeJsonToSingleString(); + GameInstance->DoSendMessage(SendedString); + UE_LOG(LogTemp, Log, TEXT("Sended: %s"), *SendedString); + } +} \ No newline at end of file diff --git a/Source/Luckyrobots/Private/UI/GameUserWidget.cpp b/Source/Luckyrobots/Private/UI/GameUserWidget.cpp index 38e7b595..f732c390 100644 --- a/Source/Luckyrobots/Private/UI/GameUserWidget.cpp +++ b/Source/Luckyrobots/Private/UI/GameUserWidget.cpp @@ -7,8 +7,45 @@ void UGameUserWidget::NativeConstruct() { Super::NativeConstruct(); - if (ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance())) + + ULuckyRobotsGameInstance* GameInstance = Cast(GetGameInstance()); + if (GameInstance) { GameInstance->GameUserWidget = this; } } + +void UGameUserWidget::DoWaitSecond() +{ + ULuckyRobotsGameInstance* GameInstance = Cast(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(GetGameInstance()); + if (GameInstance) + { + GameInstance->DoQualitySettings(0, true); + } + GetWorld()->GetTimerManager().ClearTimer(UpdateDownCountTimerHandle); + } +} \ No newline at end of file diff --git a/Source/Luckyrobots/Public/Core/LuckyRobotsGameInstance.h b/Source/Luckyrobots/Public/Core/LuckyRobotsGameInstance.h index c844bc95..67cba8f6 100644 --- a/Source/Luckyrobots/Public/Core/LuckyRobotsGameInstance.h +++ b/Source/Luckyrobots/Public/Core/LuckyRobotsGameInstance.h @@ -7,6 +7,9 @@ #include "SharedDef.h" #include "LuckyRobotsGameInstance.generated.h" +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMessageDispatched, const FString&, Message); +DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnRandomMeshesUpdated); + class USIOJsonValue; class UGameUserWidget; /** @@ -128,6 +131,13 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite) TArray LuckyCodeList; +public: + UPROPERTY(BlueprintCallable, BlueprintAssignable, Category = "Event") + FOnMessageDispatched OnMessageDispatched; + + UPROPERTY(BlueprintCallable, BlueprintAssignable, Category = "Event") + FOnRandomMeshesUpdated OnRandomMeshesUpdated; + public: UFUNCTION(BlueprintCallable) void DoSendMessage(const FString& SendValue); @@ -190,6 +200,12 @@ public: UFUNCTION(BlueprintPure, Category = "Selectable Items") TArray GetSelectableItemList(EItemCategory ItemCategory); + UFUNCTION(BlueprintCallable) + void GetMessageParse(FString Json); + + UFUNCTION(BlueprintCallable) + FParsedData DoJsonParse(const FString& JsonString); + public: UFUNCTION(BlueprintCallable) void SetCurrentFolderName(const FString& FolderName); @@ -295,7 +311,4 @@ public: UFUNCTION(BlueprintPure) int32 GetWidgetTotalHit() const; -public: - UFUNCTION(BlueprintImplementableEvent) - void DoGetDispatch(const FString& EventName, USIOJsonValue* EventData); }; diff --git a/Source/Luckyrobots/Public/Menus/MainScreenUserWidget.h b/Source/Luckyrobots/Public/Menus/MainScreenUserWidget.h index d8c7e311..0d5491d1 100644 --- a/Source/Luckyrobots/Public/Menus/MainScreenUserWidget.h +++ b/Source/Luckyrobots/Public/Menus/MainScreenUserWidget.h @@ -28,6 +28,12 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite) int32 CurrentQualityIndex; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + bool bIsFullScreen = true; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TSoftObjectPtr CurrentSelectLevelObject; + public: UFUNCTION(BlueprintCallable) void InitData(); @@ -62,10 +68,20 @@ public: UFUNCTION(BlueprintCallable) void SelectPreviousQuality(); + UFUNCTION(BlueprintCallable) + void DoResolutionChange(); + + UFUNCTION(BlueprintCallable) + void GameStart(); + void UpdateSelectRobot(); void UpdateSelectLevel(); void UpdateSelectQuality(); +public: + void OnMessageDispatchedHandler(const FString& Message); + void DoSendReadyJson(); + public: UFUNCTION(BlueprintImplementableEvent) void BPUpdateSelectRobot(); diff --git a/Source/Luckyrobots/Public/SharedDef.h b/Source/Luckyrobots/Public/SharedDef.h index 429d62c9..d3295967 100644 --- a/Source/Luckyrobots/Public/SharedDef.h +++ b/Source/Luckyrobots/Public/SharedDef.h @@ -670,4 +670,19 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite) FTransform Transform; +}; + +USTRUCT(BlueprintType) +struct FParsedData +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category = "Parsed Data") + FString LevelName; + + UPROPERTY(BlueprintReadWrite, Category = "Parsed Data") + FString CharacterName; + + UPROPERTY(BlueprintReadWrite, Category = "Parsed Data") + FString Quality; }; \ No newline at end of file diff --git a/Source/Luckyrobots/Public/UI/GameUserWidget.h b/Source/Luckyrobots/Public/UI/GameUserWidget.h index 6a663e86..0077062f 100644 --- a/Source/Luckyrobots/Public/UI/GameUserWidget.h +++ b/Source/Luckyrobots/Public/UI/GameUserWidget.h @@ -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(); };