-Firstly uses Worlds, which contain their self ComponentManager. The ComponentManager has a group of std::unique_ptr<ComponentSystem<T>> for each Component we have. When we load a Component will instance its ComponentSystem<T>. ComponentSystem<T> is based of BasicComponentSystem<T> which has its own std::vector\<T\> of Components grouping all the same Components of its own type avoiding branching. The BasicComponentSystem<T> is compiled for each Component so when we add a new component to our entity, we don't even need to #include the component, will be only needed to include it when we want to work with that specific component such as call its functions.
0 commit comments