#pragma once #include #include "engine/data/vector2.hpp" #include "interfaces/component.hpp" #include "interfaces/component_renderer.hpp" #include "interfaces/cursor.hpp" class IComponent; class ICursorController; class Vector2; 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; };