// Fill out your copyright notice in the Description page of Project Settings. #include "Core/LuckyRobotsGameInstance.h" #include "GameModes/LuckyRobotsGameState.h" #include "Kismet/GameplayStatics.h" #include "UI/GameUserWidget.h" void ULuckyRobotsGameInstance::DoSendMessage(FString SendValue) { ALuckyRobotsGameState* LuckyRobotsGameState = Cast(UGameplayStatics::GetGameState(this)); if (LuckyRobotsGameState) { LuckyRobotsGameState->DoSendMessage(SendValue); } DoLogItemAdd("Receive", SendValue, ELogItemType::Debug); } void ULuckyRobotsGameInstance::DoLogItemAdd(FString Topic, FString MsgText, ELogItemType LogItemType) { if (GameUserWidget) { GameUserWidget->DoLogItemAdd(Topic, MsgText, LogItemType); } } void ULuckyRobotsGameInstance::SwitchGamePaused() { UGameplayStatics::SetGamePaused(this, !UGameplayStatics::IsGamePaused(this)); if (UGameplayStatics::IsGamePaused(this)) { UKismetSystemLibrary::ExecuteConsoleCommand(this, "r.SceneRendering 0"); } else { UKismetSystemLibrary::ExecuteConsoleCommand(this, "r.SceneRendering 1"); } } void ULuckyRobotsGameInstance::ClearTaskList() { TaskList.Empty(); } void ULuckyRobotsGameInstance::AddTask(FGoalsTaskData TaskData) { TaskList.Add(TaskData); } void ULuckyRobotsGameInstance::RemoveTask(FGoalsTaskData TaskData) { TaskList.Remove(TaskData); } void ULuckyRobotsGameInstance::RemoveTaskByGoalType(EGoalType GoalType) { for (auto Task : TaskList) { if (Task.GoalType == GoalType) { RemoveTask(Task); break; } } } int ULuckyRobotsGameInstance::GetTaskNum() { return TaskList.Num(); } void ULuckyRobotsGameInstance::SetTask(int Index, FGoalsTaskData TaskData) { if (TaskList.IsValidIndex(Index)) { TaskList[Index] = TaskData; } else { for (int i = TaskList.Num(); i < Index; i++) { FGoalsTaskData TempTaskData; AddTask(TempTaskData); } AddTask(TaskData); } } bool ULuckyRobotsGameInstance::GetTask(int Index, FGoalsTaskData& TaskData) { if (TaskList.IsValidIndex(Index)) { TaskData = TaskList[Index]; return true; } return false; } void ULuckyRobotsGameInstance::ReSetTaskList() { TArray TempTaskList; for (auto Task : TaskList) { Task.bIsStart = false; Task.bIsStart = false; Task.bActive = false; TempTaskList.Add(Task); } TaskList = TempTaskList; } TArray ULuckyRobotsGameInstance::GetTaskList() { return TaskList; } void ULuckyRobotsGameInstance::DoSetTempTaskValueChange(bool IsClear) { if (IsClear) { ClearTaskList(); } else { AddTask(TempTask); } if (GameUserWidget) { GameUserWidget->DoRefreshListView(); } } void ULuckyRobotsGameInstance::SetCurrentFolderName(FString FolderName) { CurrentCaptureSettingsData.FolderName = FText::FromString(FolderName); } void ULuckyRobotsGameInstance::SetCurrentFileName(FString FileName) { CurrentCaptureSettingsData.FileName = FText::FromString(FileName); } void ULuckyRobotsGameInstance::SetCurrentWritesPerSec(int WritesPerSec) { CurrentCaptureSettingsData.WritesPerSec = FText::FromString(FString::FromInt(WritesPerSec)); } void ULuckyRobotsGameInstance::SetCurrentIsScenario(bool IsScenario) { CurrentCaptureSettingsData.IsScenario = IsScenario; } void ULuckyRobotsGameInstance::SetCurrentIsRandomLight(bool bLight) { CurrentCaptureSettingsData.bLight = bLight; } void ULuckyRobotsGameInstance::SetCurrentIsRandomMaterials(bool bMaterials) { CurrentCaptureSettingsData.bMaterials = bMaterials; } void ULuckyRobotsGameInstance::SetCurrentIsRandomRobotPosition(bool bRobotPosition) { CurrentCaptureSettingsData.bRobotPosition = bRobotPosition; } void ULuckyRobotsGameInstance::SetCurrentIsRandomPets(bool bPets) { CurrentCaptureSettingsData.bPets = bPets; } void ULuckyRobotsGameInstance::SetCurrentPetsNumber(int PetsNumber) { CurrentCaptureSettingsData.NumberOfPets = FText::FromString(FString::FromInt(PetsNumber)); } void ULuckyRobotsGameInstance::SetCurrentIsRandomPeople(bool bPeople) { CurrentCaptureSettingsData.bPeople = bPeople; } void ULuckyRobotsGameInstance::SetCurrentPeopleNumber(int PeopleNumber) { CurrentCaptureSettingsData.NumberOfPeople = FText::FromString(FString::FromInt(PeopleNumber)); } void ULuckyRobotsGameInstance::SetCurrentIsRandomObjects(bool bObjects) { CurrentCaptureSettingsData.bObjects = bObjects; } void ULuckyRobotsGameInstance::SetCurrentObjectsNumber(int ObjectsNumber) { CurrentCaptureSettingsData.NumberOfObjects = FText::FromString(FString::FromInt(ObjectsNumber)); } void ULuckyRobotsGameInstance::SetCurrentRandomMeshes(TArray> RandomMeshes) { CurrentCaptureSettingsData.RandomMeshes = RandomMeshes; } void ULuckyRobotsGameInstance::SetCurrentIsInfiniteCapture(bool bInfiniteCapture) { CurrentCaptureSettingsData.bInfiniteCapture = bInfiniteCapture; } void ULuckyRobotsGameInstance::SetCurrentCaptureNumber(int CaptureNumber) { CurrentCaptureSettingsData.NumberOfCaptures = FText::FromString(FString::FromInt(CaptureNumber)); } FString ULuckyRobotsGameInstance::GetCurrentFolderName() { return CurrentCaptureSettingsData.FolderName.ToString(); } FString ULuckyRobotsGameInstance::GetCurrentFileName() { return CurrentCaptureSettingsData.FileName.ToString(); } int ULuckyRobotsGameInstance::GetCurrentWritesPerSec() { return FCString::Atoi(*(CurrentCaptureSettingsData.WritesPerSec.ToString())); } bool ULuckyRobotsGameInstance::GetCurrentIsScenario() { return CurrentCaptureSettingsData.IsScenario; } bool ULuckyRobotsGameInstance::GetCurrentIsRandomLight() { return CurrentCaptureSettingsData.bLight; } bool ULuckyRobotsGameInstance::GetCurrentIsRandomMaterials() { return CurrentCaptureSettingsData.bMaterials; } bool ULuckyRobotsGameInstance::GetCurrentIsRandomRobotPosition() { return CurrentCaptureSettingsData.bRobotPosition; } bool ULuckyRobotsGameInstance::GetCurrentIsRandomPets() { return CurrentCaptureSettingsData.bPets; } int ULuckyRobotsGameInstance::GetCurrentPetsNumber() { return FCString::Atoi(*(CurrentCaptureSettingsData.NumberOfPets.ToString())); } bool ULuckyRobotsGameInstance::GetCurrentIsRandomPeople() { return CurrentCaptureSettingsData.bPeople; } int ULuckyRobotsGameInstance::GetCurrentPeopleNumber() { return FCString::Atoi(*(CurrentCaptureSettingsData.NumberOfPeople.ToString())); } bool ULuckyRobotsGameInstance::GetCurrentIsRandomObjects() { return CurrentCaptureSettingsData.bObjects; } int ULuckyRobotsGameInstance::GetCurrentObjectsNumber() { return FCString::Atoi(*(CurrentCaptureSettingsData.NumberOfObjects.ToString())); } TArray> ULuckyRobotsGameInstance::GetCurrentRandomMeshes() { return CurrentCaptureSettingsData.RandomMeshes; } bool ULuckyRobotsGameInstance::GetCurrentIsInfiniteCapture() { return CurrentCaptureSettingsData.bInfiniteCapture; } int ULuckyRobotsGameInstance::GetCurrentCaptureNumber() { return FCString::Atoi(*(CurrentCaptureSettingsData.NumberOfCaptures.ToString())); }