3#include "./GECSManager.h"
4#include <unordered_map>
7static const std::unordered_map<std::string, std::function<void(
Entity*)>> addComponentMap = {
9 {
"SpriteComponent", [](
Entity* entity) {entity->addGroup(Manager::groupRenderSprites);entity->addComponent<
SpriteComponent>(); }},
21 {
"UILabel", [](
Entity* entity) { entity->addComponent<
UILabel>(); }},
30static const std::unordered_map<std::string, std::function<void(
Entity*)>> removeComponentMap = {
32 {
"SpriteComponent", [](
Entity* entity) { entity->removeGroup(Manager::groupRenderSprites); entity->removeComponent<
SpriteComponent>(); }},
43 {
"UILabel", [](
Entity* entity) { entity->removeComponent<
UILabel>(); }},
52static const std::unordered_map<std::string, std::function<
BaseComponent* (
Entity*)>> getComponentMap = {
75void AddComponentByName(
const std::string& componentName,
Entity* entity) {
76 auto it = addComponentMap.find(componentName);
77 if (it != addComponentMap.end()) {
81 entity->getManager()->aboutTo_updateActiveEntities();
85void RemoveComponentByName(
const std::string& componentName,
Entity* entity) {
86 auto it = removeComponentMap.find(componentName);
87 if (it != removeComponentMap.end()) {
91 entity->getManager()->aboutTo_updateActiveEntities();
96 auto it = getComponentMap.find(componentName);
97 if (it != getComponentMap.end()) {
98 return it->second(entity);
Definition AnimatorComponent.h:13
Definition ColliderComponent.h:12
Definition FlashAnimatorComponent.h:10
Definition GridComponent.h:20
moving animation
Definition KeyboardControllerComponent.h:20
Definition LineFlashAnimatorComponent.h:14
Definition Line_w_Color.h:6
Definition MovingAnimatorComponent.h:11
Definition PollingComponent.h:4
Definition RectangleFlashAnimatorComponent.h:14
Definition Rectangle_w_Color.h:6
Definition RigidBodyComponent.h:5
Definition SpringComponent.h:6
Definition SpriteComponent.h:17
Definition Triangle_w_Color.h:6