Potato Engine
Loading...
Searching...
No Matches
PotatoEngine.hpp
Go to the documentation of this file.
1
2// no pragma once; promote one time inclusion
3
4#include <memory>
5#include <vector>
6
7#include "EngineSubsystem.hpp"
8
10class ITickController;
11class IHUDController;
12
18class PotatoEngine // implementation in 'Internal/Private/PotatoEngine.cpp'
19{
20 PotatoEngine();
21 ~PotatoEngine();
22public:
28 static PotatoEngine& Get();
29
35
40 void BeginPlay();
41
46 void Resolve() noexcept;
47
54
55protected:
56 std::vector<IEngineSubsystem*> SubsystemStack;
57
58 IInputController* InputController;
59 ITickController* TickController;
60 IHUDController* HUDController;
61
62};
Interface for internal engine classes.
Manages global HUD.
Interface to manage input binding operations.
Interface to handle tick events.
void BeginPlay()
Starts gameplay.
ITickController * GetTickController() const
Gets tick controller.
void Resolve() noexcept
Resolve all subobjects and perform resolving engine functionality.
IInputController * GetInputController() const
Gets input controller.
static PotatoEngine & Get()
Global access to engine object.
IHUDController * GetHUDController() const
Gets HUD controller.
void LoadSubobjects()
Loads all subobjects and calls corresponding initializing methods.