Space Plunder
Loading...
Searching...
No Matches
NPC_Optimizator.h
Go to the documentation of this file.
1// Copyright (C) 2021-2023 Space Raccoon Game Studio. All rights reserved. Contacts: <business@space-raccoon.com>
2// Created by AfroStalin
3
4#pragma once
5
6#include "CoreMinimal.h"
7#include "UObject/GCObject.h"
8#include "Modules/ModuleManager.h"
9#include "Engine/World.h"
10
12
13class FNPC_OptimizatorModule : public IModuleInterface, public FGCObject
14{
15public:
16 // IModuleInterface
17 virtual void StartupModule() override;
18 virtual void ShutdownModule() override;
19 //~IModuleInterface
20
21 // FGCObject
22 virtual void AddReferencedObjects(FReferenceCollector& Collector) override;
23 virtual FString GetReferencerName() const override;
24 //~FGCObject
25public:
27
28 FORCEINLINE static FOptimizationManager* GetOptimizationManager(UWorld* World)
29 {
30 FNPC_OptimizatorModule& NPC_OptimizatorModule = FModuleManager::LoadModuleChecked<FNPC_OptimizatorModule>("NPC_Optimizator");
31 return NPC_OptimizatorModule.GetOptimizationManagerForWorld(World);
32 }
33private:
34 void HandleWorldInit(UWorld* World, const UWorld::InitializationValues IVS);
35 void HandleWorldCleanup(UWorld* World, bool bSessionEnded, bool bCleanupResources);
36
38 FDelegateHandle PostWorldCleanupHandle;
39
40 TMap<UWorld*, FOptimizationManager*> WorldOptimizers;
41};
Definition NPC_Optimizator.h:14
static FORCEINLINE FOptimizationManager * GetOptimizationManager(UWorld *World)
Definition NPC_Optimizator.h:28
FDelegateHandle PreWorldInitializationHandle
Definition NPC_Optimizator.h:37
FDelegateHandle PostWorldCleanupHandle
Definition NPC_Optimizator.h:38
void HandleWorldCleanup(UWorld *World, bool bSessionEnded, bool bCleanupResources)
Definition NPC_Optimizator.cpp:53
void HandleWorldInit(UWorld *World, const UWorld::InitializationValues IVS)
Definition NPC_Optimizator.cpp:48
virtual void StartupModule() override
Definition NPC_Optimizator.cpp:23
FOptimizationManager * GetOptimizationManagerForWorld(UWorld *World)
Definition NPC_Optimizator.cpp:9
TMap< UWorld *, FOptimizationManager * > WorldOptimizers
Definition NPC_Optimizator.h:40
virtual FString GetReferencerName() const override
Definition NPC_Optimizator.cpp:43
virtual void AddReferencedObjects(FReferenceCollector &Collector) override
Definition NPC_Optimizator.cpp:35
virtual void ShutdownModule() override
Definition NPC_Optimizator.cpp:29
Definition OptimizationManager.h:55