LuckyWorldV2/Source/Luckyrobots/Public/Core/LuckyRobotsGameInstance.h
martinluckyrobots d5ababe90c Optimizing gameinstance
2025-04-09 13:04:34 +08:00

302 lines
7.7 KiB
C++

// 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;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Config")
UDataTable* FurnitureDataTable;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Config")
UDataTable* DecorationDataTable;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Config")
UDataTable* KitchenwareDataTable;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Config")
UDataTable* ElectronicsDataTable;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Config")
UDataTable* BathroomDataTable;
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Config")
TArray<FString> AlphabetForRandomList;
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Resulation")
bool bIsFirstOpenGame;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "WebSocket")
bool bIsStartConnect;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
ESaveDataType SelectSaveDataType;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
bool bIsDebug;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
bool bIsWidgetTestMode;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
bool bIsShowPath;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 WidgetTotalHit;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
bool bInfiniteTime;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float FastEndTaskTime = 180.0f;
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Capture")
bool bIsCapture;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Capture")
bool bIsCaptureHand;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Capture")
bool bIsCaptureHead;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Capture")
bool bScenarioCapture;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Capture")
bool bIsMouseOpen;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Capture")
bool bIsChanged;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Capture")
int32 FolderCount;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Capture")
FTransform TargetPosition;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Capture")
FCaptureSettingsData CurrentCaptureSettingsData;
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Random Mesh")
bool bIsRandomPannel;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Random Mesh")
bool bIsRandomRobotPosition;
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<FGoalsTaskData> TaskList;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FGoalsTaskData TempTask;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
UGameUserWidget* GameUserWidget;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TArray<FLuckyCode> LuckyCodeList;
public:
UFUNCTION(BlueprintCallable)
void DoSendMessage(const FString& SendValue);
UFUNCTION(BlueprintCallable)
void DoLogItemAdd(const FString& Topic, const FString& MsgText, ELogItemType LogItemType);
UFUNCTION(BlueprintCallable)
void SwitchGamePaused();
public:
UFUNCTION(BlueprintCallable)
void ClearTaskList();
UFUNCTION(BlueprintCallable)
void AddTask(const FGoalsTaskData& TaskData);
UFUNCTION(BlueprintCallable)
void RemoveTask(const FGoalsTaskData& TaskData);
UFUNCTION(BlueprintCallable)
void RemoveTaskByGoalType(EGoalType GoalType);
UFUNCTION(BlueprintPure)
int32 GetTaskNum() const;
UFUNCTION(BlueprintCallable)
void SetTask(int32 Index, const FGoalsTaskData& TaskData);
UFUNCTION(BlueprintCallable)
bool GetTask(int32 Index, FGoalsTaskData& OutTaskData) const;
UFUNCTION(BlueprintCallable)
void ReSetTaskList();
UFUNCTION(BlueprintPure)
TArray<FGoalsTaskData> GetTaskList() const;
UFUNCTION(BlueprintCallable)
void DoSetTempTaskValueChange(bool bIsClear);
UFUNCTION(BlueprintCallable, Category = "Resolution")
void DoResolutionChange(bool bIsFullscreen);
UFUNCTION(BlueprintCallable)
FString DoRandomString(FString StartString);
UFUNCTION(BlueprintCallable)
void UpdateQualitySettings();
UFUNCTION(BlueprintCallable)
void DoQualitySettings(int32 Quality, bool Auto);
UFUNCTION(BlueprintPure)
FString GetWriteFolderPath();
UFUNCTION(BlueprintPure)
TSoftObjectPtr<UStaticMesh> GetRandomMesh();
UFUNCTION(BlueprintPure, Category = "Selectable Items")
TArray<FSelectableItemData> GetSelectableItemList(EItemCategory ItemCategory);
public:
UFUNCTION(BlueprintCallable)
void SetCurrentFolderName(const FString& FolderName);
UFUNCTION(BlueprintCallable)
void SetCurrentFileName(const FString& FileName);
UFUNCTION(BlueprintCallable)
void SetCurrentWritesPerSec(int32 WritesPerSec);
UFUNCTION(BlueprintCallable)
void SetCurrentIsScenario(bool IsScenario);
UFUNCTION(BlueprintCallable)
void SetCurrentIsRandomLight(bool bLight);
UFUNCTION(BlueprintCallable)
void SetCurrentIsRandomMaterials(bool bMaterials);
UFUNCTION(BlueprintCallable)
void SetCurrentIsRandomRobotPosition(bool bRobotPosition);
UFUNCTION(BlueprintCallable)
void SetCurrentIsRandomPets(bool bPets);
UFUNCTION(BlueprintCallable)
void SetCurrentPetsNumber(int32 PetsNumber);
UFUNCTION(BlueprintCallable)
void SetCurrentIsRandomPeople(bool bPeople);
UFUNCTION(BlueprintCallable)
void SetCurrentPeopleNumber(int32 PeopleNumber);
UFUNCTION(BlueprintCallable)
void SetCurrentIsRandomObjects(bool bObjects);
UFUNCTION(BlueprintCallable)
void SetCurrentObjectsNumber(int32 ObjectsNumber);
UFUNCTION(BlueprintCallable)
void SetCurrentRandomMeshes(const TArray<TSoftObjectPtr<UStaticMesh>>& RandomMeshes);
UFUNCTION(BlueprintCallable)
void SetCurrentIsInfiniteCapture(bool bInfiniteCapture);
UFUNCTION(BlueprintCallable)
void SetCurrentCaptureNumber(int32 CaptureNumber);
public:
UFUNCTION(BlueprintPure)
FString GetCurrentFolderName() const;
UFUNCTION(BlueprintPure)
FString GetCurrentFileName() const;
UFUNCTION(BlueprintPure)
int32 GetCurrentWritesPerSec() const;
UFUNCTION(BlueprintPure)
bool GetCurrentIsScenario() const;
UFUNCTION(BlueprintPure)
bool GetCurrentIsRandomLight() const;
UFUNCTION(BlueprintPure)
bool GetCurrentIsRandomMaterials() const;
UFUNCTION(BlueprintPure)
bool GetCurrentIsRandomRobotPosition() const;
UFUNCTION(BlueprintPure)
bool GetCurrentIsRandomPets() const;
UFUNCTION(BlueprintPure)
int32 GetCurrentPetsNumber() const;
UFUNCTION(BlueprintPure)
bool GetCurrentIsRandomPeople() const;
UFUNCTION(BlueprintPure)
int32 GetCurrentPeopleNumber() const;
UFUNCTION(BlueprintPure)
bool GetCurrentIsRandomObjects() const;
UFUNCTION(BlueprintPure)
int32 GetCurrentObjectsNumber() const;
UFUNCTION(BlueprintPure)
TArray<TSoftObjectPtr<UStaticMesh>> GetCurrentRandomMeshes() const;
UFUNCTION(BlueprintPure)
bool GetCurrentIsInfiniteCapture() const;
UFUNCTION(BlueprintPure)
int32 GetCurrentCaptureNumber() const;
public:
UFUNCTION(BlueprintCallable)
void SetWidgetTotalHit(int32 Value);
UFUNCTION(BlueprintPure)
int32 GetWidgetTotalHit() const;
public:
UFUNCTION(BlueprintImplementableEvent)
void DoGetDispatch(const FString& EventName, USIOJsonValue* EventData);
};