#pragma once
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Graphics/Font.hpp>
#include <guecs/ui.hpp>
#include "levelmanager.hpp"

namespace gui {
  using std::string;

  class OverlayUI {
    public:
      guecs::UI $gui;
      GameLevel $level;

      OverlayUI();

      void init();
      void update_level(GameLevel level);

      void render(sf::RenderWindow& window);
      void show_sprite(string region, string sprite_name);
      void close_sprite(string region);
      void show_text(std::string region, std::wstring content);
      void update_text(std::string region, std::wstring content);
      void close_text(std::string region);
      void show_label(std::string region, std::wstring content);
      void update_label(std::string region, std::wstring content);
      void close_label(std::string region);
  };
}