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

namespace gui {
  class StatusUI {
    public:
      guecs::UI $gui;
      GameLevel $level;
      std::unordered_map<guecs::Entity, std::string> $slot_to_name;
      ritual::UI $ritual_ui;

      StatusUI(GameLevel level);
      void select_ritual();
      void update_level(GameLevel &level);
      void init();
      void render(sf::RenderWindow &window);
      void update();
      bool mouse(float x, float y, bool hover);

      void remove_slot(guecs::Entity slot_id);
      bool place_slot(guecs::Entity gui_id, DinkyECS::Entity world_entity);
      bool drop_item(DinkyECS::Entity item_id);
  };
}