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

namespace gui {
  class DebugUI {
    public:
      Stats $stats;
      guecs::UI $gui;
      GameLevel $level;
      LevelManager& $level_mgr;

      DebugUI(LevelManager& level_mgr);

      void init(lel::Cell cell);
      void render(sf::RenderWindow& window);
      bool mouse(float x, float y, bool hover);
      void debug();
      void update_level(GameLevel &level);
      void spawn(std::string enemy_key);
      void add_spawn_button(std::string enemy_key, std::string sprite_name, std::string region);

      Stats::TimeBullshit time_start();
      void sample_time(Stats::TimeBullshit start);
      void reset_stats();
  };
}