// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Engine/GameInstance.h" #include "SharedDef.h" #include "LuckyRobotsGameInstance.generated.h" class USIOJsonValue; class UGameUserWidget; /** * */ UCLASS() class LUCKYROBOTS_API ULuckyRobotsGameInstance : public UGameInstance { GENERATED_BODY() public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Config") UDataTable* RobotDataDataTable; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Config") UDataTable* LevelDataTable; public: UPROPERTY(EditAnywhere, BlueprintReadWrite) ERobotsName CurrentSelectRobot = ERobotsName::None; UPROPERTY(EditAnywhere, BlueprintReadWrite) ELevelEnum CurrentSelectLevel = ELevelEnum::None; UPROPERTY(EditAnywhere, BlueprintReadWrite) EQualityEnum CurrentSelectQuality = EQualityEnum::Epic; UPROPERTY(EditAnywhere, BlueprintReadWrite) TArray TaskList; UPROPERTY(EditAnywhere, BlueprintReadWrite) FGoalsTaskData TempTask; UPROPERTY(EditAnywhere, BlueprintReadWrite) UGameUserWidget* GameUserWidget; public: UFUNCTION(BlueprintCallable) void DoSendMessage(FString SendValue); UFUNCTION(BlueprintCallable) void DoLogItemAdd(FString Topic, FString MsgText, int Type); UFUNCTION(BlueprintCallable) void SwitchGamePaused(); public: UFUNCTION(BlueprintCallable) void ClearTaskList(); UFUNCTION(BlueprintCallable) void AddTask(FGoalsTaskData TaskData); UFUNCTION(BlueprintCallable) void RemoveTask(FGoalsTaskData TaskData); UFUNCTION(BlueprintCallable) void RemoveTaskByGoalType(EGoalType GoalType); UFUNCTION(BlueprintPure) int GetTaskNum(); UFUNCTION(BlueprintCallable) void SetTask(int Index, FGoalsTaskData TaskData); UFUNCTION(BlueprintCallable) bool GetTask(int Index, FGoalsTaskData& TaskData); UFUNCTION(BlueprintCallable) void ReSetTaskList(); UFUNCTION(BlueprintPure) TArray GetTaskList(); UFUNCTION(BlueprintCallable) void DoSetTempTaskValueChange(bool IsClear); public: UFUNCTION(BlueprintImplementableEvent) void DoGetDispatch(const FString& EventName, USIOJsonValue* EventData); };