Potato Engine
Loading...
Searching...
No Matches
GameInstance.cpp
Go to the documentation of this file.
1
2
3#include "Game/World.hpp"
4#include "Debug/Debug.hpp"
5
6#include "GameInstance.hpp"
7
8[[maybe_unused]] GameInstance* GameInstance::get() {
9 // constructed on first call
10 static GameInstance instance;
11
12 return &instance;
13}
14
15GameInstance::GameInstance() {
16 LOG_DEFAULT(LogType::VITAL, "GameInstance constructed");
17
18 _isMainTickRunning = false;
19 FRAMES_PER_SECOND = 24.f;
21
22 world = new World();
23
24 if (__DEFAULT_INSTANTIATORS::get_PlayerController() == nullptr) {
25 LOG_DEFAULT(LogType::ERROR, "No PlayerController default instantiator on GameInstance");
26 } else {
27 ActivePlayerController = __DEFAULT_INSTANTIATORS::get_PlayerController()();
28 }
29
30 if (__DEFAULT_INSTANTIATORS::get_Player() == nullptr) {
31 LOG_DEFAULT(LogType::ERROR, "No Player default instantiator on GameInstance");
32 } else {
33 Player* p = __DEFAULT_INSTANTIATORS::get_Player()();
34 world->AddtoPool(p);
35 ActivePlayerController->AssignPlayer(p);
36 }
37}
38
42
43void GameInstance::LoadSubobjects() {
44 ActivePlayerController->Initialize();
45 ActivePlayerController->SetupInputBindings();
46}
47
48World* GameInstance::GetWorld() const { return world; }
49PlayerController* GameInstance::GetPlayerController() const { return ActivePlayerController; }
50
51void GameInstance::Resolve() noexcept {
52 LOG_DEFAULT(LogType::VITAL, "Resolving GameInstance");
53
54 delete ActivePlayerController;
55 delete world;
56}
57
58GameInstance::~GameInstance() {
59 LOG_DEFAULT(LogType::VITAL, "GameInstance destroying");
60}
Logger LOG_DEFAULT
Default log object.
Definition Debug.cpp:9
int MS_REPEAT_THRESHOLD
Threshold to wait for input completion in milliseconds.
bool _isMainTickRunning
static GameInstance * get()
Gets singleton instance.
PlayerController * GetPlayerController() const
Gets player controller object.
float FRAMES_PER_SECOND
Global FPS constant for screen refresh.
void RequestShutdown()
Requests to queue engine shutdown.
World * GetWorld() const
Gets world object.
Main managing class for the player, controlling interactions and non-local behavior.
virtual void SetupInputBindings()
Called automatically to bind player inputs to InputController.
Local level managing gameplay interactions.
Definition World.hpp:19