#pragma once #include "interfaces/component.hpp" #include "interfaces/component_renderer.hpp" #include "interfaces/cursor.hpp" #include "engine/data/vector2.hpp" #include constexpr auto SET_BOLD_MODE = "{esc}[1m"; class ComponentRenderer : public IComponentRenderer { public: explicit ComponentRenderer( std::shared_ptr cursor_controller) noexcept; void render( const std::shared_ptr &component, const Vector2 &position) noexcept override; private: std::shared_ptr _cursor_controller; static void _use_component_colors(const std::shared_ptr &component) noexcept; };