25 #ifndef __I6ENGINE_API_ENGINECONTROLLER_H__
26 #define __I6ENGINE_API_ENGINECONTROLLER_H__
34 #if ISIXE_MPLATFORM == ISIXE_MPLATFORM_WIN32
44 #include "boost/function.hpp"
46 #include "clockUtils/iniParser/iniParser.h"
50 class EngineCoreController;
51 class MessagingController;
52 class ModuleController;
53 class SubSystemController;
64 class LanguageManager;
65 class MessagingFacade;
69 class ScriptingFacade;
84 #ifdef ISIXE_WITH_LOGGING
109 void registerSubSystem(const std::string & name, core::ModuleController * module, uint32_t frameTime);
110 void registerSubSystem(const std::string & name, core::ModuleController * module, const std::set<core::Subsystem> & waitingFor);
117 return _graphicsFacade;
129 return _messagingFacade;
133 return _networkFacade;
137 return _objectFacade;
141 return _physicsFacade;
145 return _scriptingFacade;
153 return _languageManager;
161 return _waynetManager;
202 registerDefault(ds,
nullptr);
208 void registerDefault(
const bool ds,
HWND hWnd);
221 return _coreController;
231 uint64_t registerTimer(uint64_t time,
const boost::function<
bool(
void)> & func,
bool looping,
core::JobPriorities priority);
241 bool removeTimerID(uint64_t
id);
246 uint64_t getTimeLeft(uint64_t
id)
const;
251 uint64_t getCurrentTime()
const;
256 void setCurrentTime(uint64_t time);
268 uint64_t getNewUUID()
const;
284 #if ISIXE_MPLATFORM == ISIXE_MPLATFORM_WIN32
288 HWND createWindow(HINSTANCE hInstance);
294 void enableCommandLineReader();
297 std::map<std::string, std::pair<core::ModuleController *, uint32_t>> _queuedModules;
298 std::map<std::string, std::pair<core::ModuleController *, std::set<core::Subsystem>>> _queuedModulesWaiting;
306 uint8_t _debugdrawer;
325 clockUtils::iniParser::IniParser _iParser;
330 std::thread _commandLineReadThread;
363 #define i6eEngineController i6e::api::EngineController::GetSingletonPtr()
364 #define i6eAppl i6e::api::EngineController::GetSingletonPtr()->getAppl()
365 #define i6eAudioFacade i6e::api::EngineController::GetSingletonPtr()->getAudioFacade()
366 #define i6eGraphicsFacade i6e::api::EngineController::GetSingletonPtr()->getGraphicsFacade()
367 #define i6eGUIFacade i6e::api::EngineController::GetSingletonPtr()->getGUIFacade()
368 #define i6eInputFacade i6e::api::EngineController::GetSingletonPtr()->getInputFacade()
369 #define i6eMessagingFacade i6e::api::EngineController::GetSingletonPtr()->getMessagingFacade()
370 #define i6eNetworkFacade i6e::api::EngineController::GetSingletonPtr()->getNetworkFacade()
371 #define i6eObjectFacade i6e::api::EngineController::GetSingletonPtr()->getObjectFacade()
372 #define i6ePhysicsFacade i6e::api::EngineController::GetSingletonPtr()->getPhysicsFacade()
373 #define i6eScriptingFacade i6e::api::EngineController::GetSingletonPtr()->getScriptingFacade()
Derive from this templated class to make a class a singleton. Refer to the Singleton Design Pattern i...
This class is used as the Controller for the whole engine Create an instance of this class and use th...
GUIFacade * getGUIFacade() const
LanguageManager * getLanguageManager() const
void setDebugdrawer(const uint8_t dd)
sets level of the debug drawer
Application * getAppl() const
returns the registered Application
#define ISIXE_MODULES_API
WaynetManager * getWaynetManager() const
handles Texts for the Game
This class manages the GUIWindows and provides some general API methods that aren't related to a spec...
IDManager * getIDManager() const
Physics specific functions for the game which targets the whole world - not a single object...
TextManager * getTextManager() const
Central controller for messaging between subsystems and subsystems of different clients.
void setType(GameType type)
Implements a queue that supports multiple producers but only one consumer.
this class is used as an abstraction layer
Interface for the game developer.
uint64_t getUUID() const
returns the uuid of this node
uint8_t getDebugdrawer() const
gets level of the debug drawer
handles IDs for GameObjects
core::EngineCoreController * getController() const
GraphicsFacade * getGraphicsFacade() const
handles the current Waynet
MessagingFacade * getMessagingFacade() const
InputFacade * getInputFacade() const
void registerDefault(const bool ds)
registers a basic default configuration
ScriptingFacade * getScriptingFacade() const
clockUtils::iniParser::IniParser & getIniParser()
returns the iniParser that parsed the i6engine config file
ObjectFacade * getObjectFacade() const
NetworkFacade * getNetworkFacade() const
PhysicsFacade * getPhysicsFacade() const
handles the current language of the Game a change of the language notifies all registered callbacks ...
GameType getType() const
returns the type of this node
This class is used as an abstraction layer.