#pragma once
#include "levelmanager.hpp"
#include "textures.hpp"
#include <guecs/ui.hpp>
#include <string>

namespace gui {
  class MapViewUI {
    public:
      guecs::UI $gui;
      GameLevel $level;
      DinkyECS::Entity $log_to;
      textures::SpriteTexture $paper;
      std::deque<std::wstring> $messages;

      MapViewUI(GameLevel &level);
      void init();
      void render(sf::RenderWindow &window, int compass_dir);
      void update_level(GameLevel &level);
      void log(std::wstring msg);
      void update();
      void save_map(const std::string& outfile, int compass_dir);
  };
}