#pragma once
#include "levelmanager.hpp"
#include "constants.hpp"
#include <deque>
#include "textures.hpp"
#include <guecs/ui.hpp>
#include "gui/ritual_ui.hpp"

namespace gui {
  class StatusUI {
    public:
      guecs::UI $gui;
      std::unordered_map<std::string, DinkyECS::Entity> $slots;
      GameLevel $level;
      ritual::UI $ritual_ui;
      int $selected_slot = -1;
      DinkyECS::Entity $selected_entity;

      StatusUI(GameLevel level);
      void select_ritual();
      void update_level(GameLevel &level);
      bool mouse(float x, float y, bool hover);
      void init();
      void render(sf::RenderWindow &window);
      void update();
      void select_slot(int slot_id, DinkyECS::Entity entity);
      int place_slot(const std::string &name);
  };
}
