ProjectM/Source/ProjectT/System/Core/CoreGameInstance.h

61 lines
1.6 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "ProjectT/Data/Gen/GenerateEnumStage.h"
#include "Interfaces/GlobalObjectProvider.h"
#include "Managers/StageManager.h"
#include "CoreGameInstance.generated.h"
class UNotificationCenter;
class USoundManager;
class UOptionManager;
class UCoreCheatManager;
class UQuestManager;
DECLARE_DELEGATE_OneParam(FOnLevelDataChanged, EStage);
UCLASS()
class PROJECTT_API UCoreGameInstance : public UGameInstance, public IGlobalObjectProvider
{
GENERATED_BODY()
public:
UCoreGameInstance();
virtual void Init() override;
virtual void BeginDestroy() override;
virtual UDataDam* GetDataDam_Implementation() override;
virtual UStageManager* GetStageManager_Implementation() override;
virtual UOptionManager* GetOptionManager_Implementation() override;
virtual USoundManager* GetSoundManager_Implementation() override;
virtual UCoreCheatManager* GetCoreCheatManager_Implementation() override;
virtual UNotificationCenter* GetNotificationCenter_Implementation() override;
public:
UFUNCTION(BlueprintCallable, Category = "IsRunningInDevelopment")
bool IsRunningInDevelopment();
private:
UPROPERTY()
TObjectPtr<UDataDam> DataDam;
UPROPERTY()
TObjectPtr<UStageManager> StageManager;
UPROPERTY()
TObjectPtr<UOptionManager> OptionManager;
UPROPERTY()
TObjectPtr<USoundManager> SoundManager;
UPROPERTY()
TObjectPtr<UCoreCheatManager> CoreCheatManager;
UPROPERTY()
TObjectPtr<UNotificationCenter> NotificationCenter;
};