// 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" #include "Kismet/KismetSystemLibrary.h" void ULuckyRobotsGameInstance::DoSendMessage(const FString& SendValue) { if (ALuckyRobotsGameState* GameState = Cast(UGameplayStatics::GetGameState(this))) { GameState->DoSendMessage(SendValue); } DoLogItemAdd(TEXT("Receive"), SendValue, ELogItemType::Debug); } void ULuckyRobotsGameInstance::DoLogItemAdd(const FString& Topic, const FString& MsgText, ELogItemType LogItemType) { if (GameUserWidget) { GameUserWidget->DoLogItemAdd(Topic, MsgText, LogItemType); } } void ULuckyRobotsGameInstance::SwitchGamePaused() { bool bPaused = UGameplayStatics::IsGamePaused(this); UGameplayStatics::SetGamePaused(this, !bPaused); if (!bPaused) { UKismetSystemLibrary::ExecuteConsoleCommand(this, TEXT("r.SceneRendering 0")); } else { UKismetSystemLibrary::ExecuteConsoleCommand(this, TEXT("r.SceneRendering 1")); } } void ULuckyRobotsGameInstance::ClearTaskList() { TaskList.Empty(); } void ULuckyRobotsGameInstance::AddTask(const FGoalsTaskData& TaskData) { TaskList.Add(TaskData); } void ULuckyRobotsGameInstance::RemoveTask(const FGoalsTaskData& TaskData) { TaskList.Remove(TaskData); } void ULuckyRobotsGameInstance::RemoveTaskByGoalType(EGoalType GoalType) { for (const FGoalsTaskData& Task : TaskList) { if (Task.GoalType == GoalType) { RemoveTask(Task); break; } } } int32 ULuckyRobotsGameInstance::GetTaskNum() const { return TaskList.Num(); } void ULuckyRobotsGameInstance::SetTask(int32 Index, const FGoalsTaskData& TaskData) { if (TaskList.IsValidIndex(Index)) { TaskList[Index] = TaskData; } else { while (TaskList.Num() < Index) { FGoalsTaskData TempTaskData; AddTask(TempTaskData); } AddTask(TaskData); } } bool ULuckyRobotsGameInstance::GetTask(int32 Index, FGoalsTaskData& OutTaskData) const { if (TaskList.IsValidIndex(Index)) { OutTaskData = TaskList[Index]; return true; } return false; } void ULuckyRobotsGameInstance::ReSetTaskList() { TArray TempTaskList; for (FGoalsTaskData& Task : TaskList) { Task.bIsStart = false; Task.bIsComplete = false; Task.bActive = false; TempTaskList.Add(Task); } TaskList = TempTaskList; } TArray ULuckyRobotsGameInstance::GetTaskList() const { return TaskList; } void ULuckyRobotsGameInstance::DoSetTempTaskValueChange(bool bIsClear) { if (bIsClear) { ClearTaskList(); } else { AddTask(TempTask); } if (GameUserWidget) { GameUserWidget->DoRefreshListView(); } } void ULuckyRobotsGameInstance::SetCurrentFolderName(const FString& FolderName) { CurrentCaptureSettingsData.FolderName = FText::FromString(FolderName); } void ULuckyRobotsGameInstance::SetCurrentFileName(const FString& FileName) { CurrentCaptureSettingsData.FileName = FText::FromString(FileName); } void ULuckyRobotsGameInstance::SetCurrentWritesPerSec(int32 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(int32 PetsNumber) { CurrentCaptureSettingsData.NumberOfPets = FText::FromString(FString::FromInt(PetsNumber)); } void ULuckyRobotsGameInstance::SetCurrentIsRandomPeople(bool bPeople) { CurrentCaptureSettingsData.bPeople = bPeople; } void ULuckyRobotsGameInstance::SetCurrentPeopleNumber(int32 PeopleNumber) { CurrentCaptureSettingsData.NumberOfPeople = FText::FromString(FString::FromInt(PeopleNumber)); } void ULuckyRobotsGameInstance::SetCurrentIsRandomObjects(bool bObjects) { CurrentCaptureSettingsData.bObjects = bObjects; } void ULuckyRobotsGameInstance::SetCurrentObjectsNumber(int32 ObjectsNumber) { CurrentCaptureSettingsData.NumberOfObjects = FText::FromString(FString::FromInt(ObjectsNumber)); } void ULuckyRobotsGameInstance::SetCurrentRandomMeshes(const TArray>& RandomMeshes) { CurrentCaptureSettingsData.RandomMeshes = RandomMeshes; } void ULuckyRobotsGameInstance::SetCurrentIsInfiniteCapture(bool bInfiniteCapture) { CurrentCaptureSettingsData.bInfiniteCapture = bInfiniteCapture; } void ULuckyRobotsGameInstance::SetCurrentCaptureNumber(int32 CaptureNumber) { CurrentCaptureSettingsData.NumberOfCaptures = FText::FromString(FString::FromInt(CaptureNumber)); } FString ULuckyRobotsGameInstance::GetCurrentFolderName() const { return CurrentCaptureSettingsData.FolderName.ToString(); } FString ULuckyRobotsGameInstance::GetCurrentFileName() const { return CurrentCaptureSettingsData.FileName.ToString(); } int32 ULuckyRobotsGameInstance::GetCurrentWritesPerSec() const { return FCString::Atoi(*CurrentCaptureSettingsData.WritesPerSec.ToString()); } bool ULuckyRobotsGameInstance::GetCurrentIsScenario() const { return CurrentCaptureSettingsData.IsScenario; } bool ULuckyRobotsGameInstance::GetCurrentIsRandomLight() const { return CurrentCaptureSettingsData.bLight; } bool ULuckyRobotsGameInstance::GetCurrentIsRandomMaterials() const { return CurrentCaptureSettingsData.bMaterials; } bool ULuckyRobotsGameInstance::GetCurrentIsRandomRobotPosition() const { return CurrentCaptureSettingsData.bRobotPosition; } bool ULuckyRobotsGameInstance::GetCurrentIsRandomPets() const { return CurrentCaptureSettingsData.bPets; } int32 ULuckyRobotsGameInstance::GetCurrentPetsNumber() const { return FCString::Atoi(*CurrentCaptureSettingsData.NumberOfPets.ToString()); } bool ULuckyRobotsGameInstance::GetCurrentIsRandomPeople() const { return CurrentCaptureSettingsData.bPeople; } int32 ULuckyRobotsGameInstance::GetCurrentPeopleNumber() const { return FCString::Atoi(*CurrentCaptureSettingsData.NumberOfPeople.ToString()); } bool ULuckyRobotsGameInstance::GetCurrentIsRandomObjects() const { return CurrentCaptureSettingsData.bObjects; } int32 ULuckyRobotsGameInstance::GetCurrentObjectsNumber() const { return FCString::Atoi(*CurrentCaptureSettingsData.NumberOfObjects.ToString()); } TArray> ULuckyRobotsGameInstance::GetCurrentRandomMeshes() const { return CurrentCaptureSettingsData.RandomMeshes; } bool ULuckyRobotsGameInstance::GetCurrentIsInfiniteCapture() const { return CurrentCaptureSettingsData.bInfiniteCapture; } int32 ULuckyRobotsGameInstance::GetCurrentCaptureNumber() const { return FCString::Atoi(*CurrentCaptureSettingsData.NumberOfCaptures.ToString()); }