#pragma once #include "Renderer.h" #include #include #include #include struct Tile { char glyph = 0; Color fg = Color(1, 1, 1, 1); Color bg = Color(0, 0, 0, 1); bool passable = false; bool opaque = false; bool wall = true; std::string desc = "?"; std::vector tags; bool has_tag(std::string tag) const { for (std::string t : tags) { if (t == tag) { return true; } } return false; } }; class TileSet { std::map tiles; public: TileSet(); ~TileSet(); int count() const; void add_tile(std::string name, Tile tile); Tile const& get_tile(std::string name); std::vector find_tiles(bool passable, bool opaque, bool wall, std::vector include_tags = {}, std::vector exclude_tags = {}); };