LuckyWorldV2/Source/Luckyrobots/Private/Core/LuckyRobotsGameInstance.cpp

295 lines
7.0 KiB
C++
Raw Normal View History

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