#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 RobotDataList; UPROPERTY(EditAnywhere, BlueprintReadWrite) TArray LevelDataList; UPROPERTY(EditAnywhere, BlueprintReadWrite) int32 CurrentRobotIndex; UPROPERTY(EditAnywhere, BlueprintReadWrite) int32 CurrentLevelIndex; UPROPERTY(EditAnywhere, BlueprintReadWrite) int32 CurrentQualityIndex; 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(); void UpdateSelectRobot(); void UpdateSelectLevel(); void UpdateSelectQuality(); public: UFUNCTION(BlueprintImplementableEvent) void BPUpdateSelectRobot(); UFUNCTION(BlueprintImplementableEvent) void BPUpdateSelectLevel(); UFUNCTION(BlueprintImplementableEvent) void BPUpdateSelectQuality(); };