registry.cpp 940 B

123456789101112131415161718192021222324252627282930313233
  1. #include "registry.h"
  2. #include "../../game/core/component.h"
  3. #include "../../game/core/entity.h"
  4. #include "../scene_renderer.h"
  5. #include "archer_renderer.h"
  6. #include "barracks_renderer.h"
  7. #include "knight_renderer.h"
  8. #include "mounted_knight_renderer.h"
  9. #include "spearman_renderer.h"
  10. namespace Render::GL {
  11. void EntityRendererRegistry::registerRenderer(const std::string &type,
  12. RenderFunc func) {
  13. m_map[type] = std::move(func);
  14. }
  15. RenderFunc EntityRendererRegistry::get(const std::string &type) const {
  16. auto it = m_map.find(type);
  17. if (it != m_map.end())
  18. return it->second;
  19. return {};
  20. }
  21. void registerBuiltInEntityRenderers(EntityRendererRegistry &registry) {
  22. registerArcherRenderer(registry);
  23. registerKnightRenderer(registry);
  24. registerMountedKnightRenderer(registry);
  25. registerSpearmanRenderer(registry);
  26. registerBarracksRenderer(registry);
  27. }
  28. } // namespace Render::GL