LuckyWorldV2/Source/Luckyrobots/Public/Menus/MainScreenUserWidget.h
martinluckyrobots d188cb846e Optimizing WB_GameWidget
2025-04-10 13:30:13 +08:00

93 lines
2.0 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "SharedDef.h"
#include "MainScreenUserWidget.generated.h"
UCLASS()
class LUCKYROBOTS_API UMainScreenUserWidget : public UUserWidget
{
GENERATED_BODY()
protected:
virtual void NativeConstruct() override;
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TArray<FRobotData> RobotDataList;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TArray<FLevelData> LevelDataList;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 CurrentRobotIndex;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 CurrentLevelIndex;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 CurrentQualityIndex;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
bool bIsFullScreen = true;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TSoftObjectPtr<UWorld> CurrentSelectLevelObject;
public:
UFUNCTION(BlueprintCallable)
void InitData();
UFUNCTION(BlueprintCallable)
void InitRobotData();
UFUNCTION(BlueprintCallable)
void InitLevelData();
UFUNCTION(BlueprintCallable)
FRobotData GetCurrentRobotData() const;
UFUNCTION(BlueprintCallable)
FLevelData GetCurrentLevelData() const;
UFUNCTION(BlueprintCallable)
void SelectNextRobot();
UFUNCTION(BlueprintCallable)
void SelectPreviousRobot();
UFUNCTION(BlueprintCallable)
void SelectNextLevel();
UFUNCTION(BlueprintCallable)
void SelectPreviousLevel();
UFUNCTION(BlueprintCallable)
void SelectNextQuality();
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();
UFUNCTION(BlueprintImplementableEvent)
void BPUpdateSelectLevel();
UFUNCTION(BlueprintImplementableEvent)
void BPUpdateSelectQuality();
};