#pragma once
#include "levelmanager.hpp"
#include "constants.hpp"
#include <deque>
#include "textures.hpp"
#include "guecs.hpp"

namespace gui {
  class StatusUI {
    public:
      guecs::UI $gui;
      DinkyECS::Entity $log_to;
      std::map<std::string, size_t> $slots;
      std::deque<std::string> $messages;
      GameLevel $level;

      StatusUI(GameLevel level);
      void select_slot(DinkyECS::Entity ent, std::any data);
      void update_level(GameLevel &level);
      void log(std::string msg);
      void init();
      void render(sf::RenderWindow &window);
      void update();
  };
}