Merge pull request 'martin' (#18) from martin into main
Reviewed-on: luckyrobots/LuckyRobotsUnreal#18
This commit is contained in:
commit
30b33e5432
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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;
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
@ -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<FSelectableItemData> ULuckyRobotsGameInstance::GetSelectableItemList(EIte
|
||||
return SelectableItemList;
|
||||
}
|
||||
|
||||
void ULuckyRobotsGameInstance::GetMessageParse(FString Json)
|
||||
{
|
||||
auto VaRestSubsystem = CastChecked<UVaRestSubsystem>(USubsystemBlueprintLibrary::GetEngineSubsystem(UVaRestSubsystem::StaticClass()), ECastCheckedType::NullChecked);
|
||||
if (VaRestSubsystem)
|
||||
{
|
||||
UVaRestJsonObject* VaRestJsonObject = VaRestSubsystem->ConstructVaRestJsonObject();
|
||||
if (VaRestJsonObject)
|
||||
{
|
||||
if (VaRestJsonObject->DecodeJson(Json, true))
|
||||
{
|
||||
TArray<UVaRestJsonValue*> 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<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);
|
||||
|
@ -16,7 +16,8 @@ UClass* ALuckyRobotsGameMode::GetDefaultPawnClassForController_Implementation(AC
|
||||
UClass* RobotClass = Super::GetDefaultPawnClassForController_Implementation(InController);
|
||||
|
||||
ERobotsName CurrentRobot = ERobotsName::None;
|
||||
if (ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance()))
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
CurrentRobot = GameInstance->CurrentSelectRobot;
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -5,11 +5,25 @@
|
||||
#include "Engine/DataTable.h"
|
||||
#include "Core/LuckyRobotsGameInstance.h"
|
||||
#include "FunctionLibraries/LuckyRobotsFunctionLibrary.h"
|
||||
#include "Subsystems/SubsystemBlueprintLibrary.h"
|
||||
#include "VaRestSubsystem.h"
|
||||
#include <Kismet/GameplayStatics.h>
|
||||
|
||||
void UMainScreenUserWidget::NativeConstruct()
|
||||
{
|
||||
Super::NativeConstruct();
|
||||
InitData();
|
||||
|
||||
DoSendReadyJson();
|
||||
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(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<ULuckyRobotsGameInstance>(GetGameInstance()))
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
CurrentQualityIndex = static_cast<int32>(GameInstance->CurrentSelectQuality);
|
||||
}
|
||||
@ -108,9 +123,33 @@ void UMainScreenUserWidget::SelectPreviousQuality()
|
||||
UpdateSelectQuality();
|
||||
}
|
||||
|
||||
void UMainScreenUserWidget::DoResolutionChange()
|
||||
{
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
bIsFullScreen = !bIsFullScreen;
|
||||
GameInstance->DoResolutionChange(bIsFullScreen);
|
||||
}
|
||||
}
|
||||
|
||||
void UMainScreenUserWidget::GameStart()
|
||||
{
|
||||
if (UKismetSystemLibrary::IsValidSoftObjectReference(CurrentSelectLevelObject))
|
||||
{
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
GameInstance->bIsFirstOpenGame = true;
|
||||
UGameplayStatics::OpenLevelBySoftObjectPtr(this, CurrentSelectLevelObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UMainScreenUserWidget::UpdateSelectRobot()
|
||||
{
|
||||
if (ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance()))
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
GameInstance->CurrentSelectRobot = GetCurrentRobotData().Name;
|
||||
}
|
||||
@ -120,7 +159,8 @@ void UMainScreenUserWidget::UpdateSelectRobot()
|
||||
|
||||
void UMainScreenUserWidget::UpdateSelectLevel()
|
||||
{
|
||||
if (ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance()))
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
GameInstance->CurrentSelectLevel = GetCurrentLevelData().LevelEnum;
|
||||
}
|
||||
@ -129,9 +169,75 @@ void UMainScreenUserWidget::UpdateSelectLevel()
|
||||
|
||||
void UMainScreenUserWidget::UpdateSelectQuality()
|
||||
{
|
||||
if (ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance()))
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
GameInstance->CurrentSelectQuality = static_cast<EQualityEnum>(CurrentQualityIndex);
|
||||
}
|
||||
BPUpdateSelectQuality();
|
||||
}
|
||||
|
||||
void UMainScreenUserWidget::OnMessageDispatchedHandler(const FString& Message)
|
||||
{
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(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<FLevelData> 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<UVaRestSubsystem>(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<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
FString SendedString = VaRestJsonObject->EncodeJsonToSingleString();
|
||||
GameInstance->DoSendMessage(SendedString);
|
||||
UE_LOG(LogTemp, Log, TEXT("Sended: %s"), *SendedString);
|
||||
}
|
||||
}
|
@ -7,8 +7,45 @@
|
||||
void UGameUserWidget::NativeConstruct()
|
||||
{
|
||||
Super::NativeConstruct();
|
||||
if (ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance()))
|
||||
|
||||
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||
if (GameInstance)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
@ -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<FLuckyCode> 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<FSelectableItemData> 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);
|
||||
};
|
||||
|
@ -28,6 +28,12 @@ public:
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
int32 CurrentQualityIndex;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
bool bIsFullScreen = true;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
TSoftObjectPtr<UWorld> 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();
|
||||
|
@ -671,3 +671,18 @@ 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;
|
||||
};
|
@ -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();
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user