// Fill out your copyright notice in the Description page of Project Settings. #include "CoreGameInstance.h" #include "HAL/PlatformTime.h" #include "TimerManager.h" #include "Blueprint/UserWidget.h" #include "Common/AssetUtilsLibrary.h" #include "Common/GlobalUtilsLibrary.h" #include "ProjectT/System/Core/Managers/NotificationCenter.h" #include "ProjectT/System/Core/Managers/OptionManager.h" #include "ProjectT/System/Core/Managers/SoundManager.h" #include "ProjectT/System/Core/Managers/StageManager.h" #include "ProjectT/System/Core/Managers/CoreCheatManager.h" #include "ProjectT/System/Core/Managers/DataDam.h" #include "Widgets/Images/SThrobber.h" static double GLoadingStartTime = 0.0; UCoreGameInstance::UCoreGameInstance() : DataDam(nullptr), StageManager(nullptr), OptionManager(nullptr), SoundManager(nullptr), CoreCheatManager(nullptr), NotificationCenter(nullptr) { } void UCoreGameInstance::Init() { Super::Init(); Execute_GetDataDam(this)->Initialize(); StageManager = NewObject(this); OptionManager = NewObject(this); SoundManager = NewObject(this); CoreCheatManager = NewObject(this); } void UCoreGameInstance::BeginDestroy() { Super::BeginDestroy(); DataDam = nullptr; StageManager = nullptr; OptionManager = nullptr; SoundManager = nullptr; CoreCheatManager = nullptr; } UDataDam* UCoreGameInstance::GetDataDam_Implementation() { if (!DataDam) { DataDam = NewObject(this); } return DataDam; } UStageManager* UCoreGameInstance::GetStageManager_Implementation() { if(!StageManager) { StageManager = NewObject(this); } return StageManager; } UOptionManager* UCoreGameInstance::GetOptionManager_Implementation() { if (!OptionManager->IsValidLowLevel()) { OptionManager = NewObject(this); } return OptionManager; } USoundManager* UCoreGameInstance::GetSoundManager_Implementation() { if (!SoundManager->IsValidLowLevel()) { SoundManager = NewObject(this); } return SoundManager; } UCoreCheatManager* UCoreGameInstance::GetCoreCheatManager_Implementation() { if(!CoreCheatManager->IsValidLowLevel()) { CoreCheatManager = NewObject(this); } return CoreCheatManager; } UNotificationCenter* UCoreGameInstance::GetNotificationCenter_Implementation() { if(!NotificationCenter) { NotificationCenter = NewObject(this); } return NotificationCenter; } bool UCoreGameInstance::IsRunningInDevelopment() { EBuildTargetType BT = FApp::GetBuildTargetType(); EBuildConfiguration BC = FApp::GetBuildConfiguration(); if(BT == EBuildTargetType::Editor) return true; else if(BT == EBuildTargetType::Game && BC == EBuildConfiguration::DebugGame) return true; else if(BT == EBuildTargetType::Game && BC == EBuildConfiguration::Development) return true; else return false; }