aboutsummaryrefslogtreecommitdiff
path: root/src/engine/game_initializer.hpp
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-03-03 20:40:29 +0100
committerHampusM <hampus@hampusmat.com>2022-06-13 17:56:54 +0200
commitd27f1a89266e141a944f88e9080bdeca95c49da3 (patch)
treebe78081c7b71f335b59057d25bc817bcb1306d36 /src/engine/game_initializer.hpp
parentb8e33c5aa3417bdf7989bef55cc449f75f806b76 (diff)
refactor: add game initializer
Diffstat (limited to 'src/engine/game_initializer.hpp')
-rw-r--r--src/engine/game_initializer.hpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/engine/game_initializer.hpp b/src/engine/game_initializer.hpp
new file mode 100644
index 0000000..12b42de
--- /dev/null
+++ b/src/engine/game_initializer.hpp
@@ -0,0 +1,26 @@
+#pragma once
+
+#include "DI/auto_wirable.hpp"
+#include "interfaces/game.hpp"
+#include "interfaces/game_initializer.hpp"
+#include "interfaces/input.hpp"
+#include "interfaces/scene.hpp"
+
+#include <memory>
+
+class GameInitializer
+ : public IGameInitializer,
+ public AutoWirable<IGameInitializer, GameInitializer, IScene, IInputHandler, IGame>
+{
+public:
+ GameInitializer(std::shared_ptr<IScene> scene,
+ std::shared_ptr<IInputHandler> input_handler,
+ std::shared_ptr<IGame> game);
+
+ void initialize() override;
+
+private:
+ std::shared_ptr<IScene> _scene;
+ std::shared_ptr<IInputHandler> _input_handler;
+ std::shared_ptr<IGame> _game;
+};