OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
component.hpp
Go to the documentation of this file.
1
5#pragma once
6#include <functional>
7
8#include "entity.hpp"
9#include "../scene/scene.hpp"
10
11namespace Engine::ECS {
18 class Component {
19 friend class Registry;
20
21 private:
23 Entity* mEntity;
24 public:
25 Component() = default;
26 bool enabled = true;
27
33 void SetEntity(Entity e) { mEntity = new Entity(e); }
42 Entity& GetEntity() const { return *mEntity; }
43
49 Registry& GetRegistry() const { return mEntity->GetRegistry(); }
50
56 Scene::Scene& GetScene() const { return GetRegistry().GetScene(); }
57
63 App& GetApp() const { return GetRegistry().GetScene().GetApp(); }
64 };
65}
Point d'entrée d'une application. Gère les différents systèmes associés au moteur de jeu.
Definition app.hpp:40
bool enabled
Definition component.hpp:26
App & GetApp() const
Renvoie l'instance d'application.
Definition component.hpp:63
Scene::Scene & GetScene() const
Renvoie la scène en cours.
Definition component.hpp:56
friend class Registry
Definition component.hpp:19
void SetEntity(Entity e)
Attache l'entité au component.
Definition component.hpp:33
Entity & GetEntity() const
Renvoie l'entité attachée.
Definition component.hpp:42
Registry & GetRegistry() const
Renvoie le registre actuel.
Definition component.hpp:49
Une entité est l'élément "atomique" utilisé dans l'architecture ECS pour référencer les composants.
Definition entity.hpp:19
Scene::Scene & GetScene()
Renvoie la scène courante.
Definition registry.cpp:18
Classe qui encapsule un registre de composants ECS, et des fonctions de lifcecycle.
Definition scene.hpp:36
App & GetApp()
Renvoie une référence à l'Application courante.
Definition scene.cpp:16
Décrit le fonctionnement de l'entité dans une architecture ECS.
Definition component.hpp:11
Implémente une notion de "Scène" dans le moteur de jeu.