Uranus  1.0.1.0
Uranus is a GameEngine written in C++
Loading...
Searching...
No Matches
Manager.hpp
1/*
2** EPITECH PROJECT, 2023
3** Manager.hpp
4** File description:
5** Manager.hpp
6*/
7
8#ifndef URANUS_MANAGER_HPP
9#define URANUS_MANAGER_HPP
10
11#include "EntityManager.hpp"
12#include "RenderWindow.hpp"
13#include "SceneManager.hpp"
14#include "TextureManager.hpp"
15
16namespace engine {
17 class Manager {
18 public:
19 ~Manager() = default;
20
21 Manager(const Manager &) = delete;
22
23 Manager &operator=(const Manager &) = delete;
24
25 static std::shared_ptr<engine::RenderWindow> &getWindow();
26
27 static std::shared_ptr<uranus::ecs::Registry> &getRegistry();
28
29 static std::shared_ptr<engine::SceneManager> &getSceneManager();
30
31 static std::shared_ptr<engine::TextureManager> &getTextureManager();
32
33 static std::shared_ptr<engine::EntityManager> &getEntityManager();
34
35 static void killAllEntitiesAndPrefabs();
36
37 private:
38 Manager() = default;
39
40 static std::shared_ptr<engine::RenderWindow> window;
41 static std::shared_ptr<uranus::ecs::Registry> registry;
42 static std::shared_ptr<engine::SceneManager> sceneManager;
43 static std::shared_ptr<engine::TextureManager> textureManager;
44 static std::shared_ptr<engine::EntityManager> entityManager;
45 };
46} // namespace engine
47
48#endif // URANUS_MANAGER_HPP
Definition: Manager.hpp:17