#pragma once #include #include "game_engine.hpp" #include "guecs.hpp" using std::string; class Builder; class GUI { int $timer_seconds; sf::RenderWindow $window; guecs::UI $gui; std::wstring $status; DinkyECS::Entity $log; DinkyECS::Entity $hp_bar; bool $hit_error = false; std::chrono::time_point $timer_end; public: GUI(int timer_seconds); void output(const string msg); void update_status(GameEngine &game, size_t line_length, bool is_error); void configure_status_shader(int speedup, bool is_error); void startup(); bool is_open() { return $window.isOpen(); } void main_loop(); void handle_events(); void build_success(); void build_failed(bool play_sound, const string &command); void you_died(); void building(); };