Porytiles
Loading...
Searching...
No Matches
ascii_tile_printer.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
6#include "gsl/pointers"
7
13
14namespace porytiles {
15
18class AsciiTilePrinter final : public TilePrinter {
19 public:
20 explicit AsciiTilePrinter(gsl::not_null<TextFormatter *> format) : format_{format} {}
21
22 [[nodiscard]] std::vector<std::string> print_metatile(
23 const Metatile<Rgba32> &metatile, metatile::Layer layer, const Rgba32 &extrinsic_transparency) const override;
24
25 [[nodiscard]] std::vector<std::string> print_metatile_tile_highlight(
26 const Metatile<Rgba32> &metatile,
27 metatile::Layer layer,
28 metatile::Subtile subtile,
29 const Rgba32 &extrinsic_transparency) const override;
30
31 [[nodiscard]] std::vector<std::string> print_metatile_pixel_highlight(
32 const Metatile<Rgba32> &metatile,
33 metatile::Layer layer,
34 metatile::Subtile subtile,
35 std::size_t row,
36 std::size_t col,
37 const Rgba32 &extrinsic_transparency) const override;
38
39 [[nodiscard]] std::vector<std::string> print_metatile_pixel_highlights(
40 const Metatile<Rgba32> &metatile,
41 metatile::Layer layer,
42 metatile::Subtile subtile,
43 const std::vector<std::size_t> &indexes,
44 const Rgba32 &extrinsic_transparency) const override;
45
46 [[nodiscard]] std::vector<std::string>
47 print_tile(const PixelTile<Rgba32> &tile, const Rgba32 &extrinsic_transparency) const override;
48
49 [[nodiscard]] std::vector<std::string>
50 print_tile(const PixelTile<IndexPixel> &tile, const Rgba32 &extrinsic_transparency) const override;
51
52 [[nodiscard]] std::vector<std::string> print_tile_pixel_highlight(
53 const PixelTile<Rgba32> &tile,
54 std::size_t row,
55 std::size_t col,
56 const Rgba32 &extrinsic_transparency) const override;
57
58 [[nodiscard]] std::vector<std::string> print_tile_pixel_highlights(
59 const PixelTile<Rgba32> &tile,
60 const std::vector<std::size_t> &indexes,
61 const Rgba32 &extrinsic_transparency) const override;
62
63 private:
64 TextFormatter *format_;
65};
66
67} // namespace porytiles
A TilePrinter implementation that generates ASCII art tiles with formatting based on the provided Tex...
std::vector< std::string > print_metatile_pixel_highlight(const Metatile< Rgba32 > &metatile, metatile::Layer layer, metatile::Subtile subtile, std::size_t row, std::size_t col, const Rgba32 &extrinsic_transparency) const override
std::vector< std::string > print_metatile_tile_highlight(const Metatile< Rgba32 > &metatile, metatile::Layer layer, metatile::Subtile subtile, const Rgba32 &extrinsic_transparency) const override
std::vector< std::string > print_tile_pixel_highlight(const PixelTile< Rgba32 > &tile, std::size_t row, std::size_t col, const Rgba32 &extrinsic_transparency) const override
std::vector< std::string > print_tile_pixel_highlights(const PixelTile< Rgba32 > &tile, const std::vector< std::size_t > &indexes, const Rgba32 &extrinsic_transparency) const override
std::vector< std::string > print_metatile_pixel_highlights(const Metatile< Rgba32 > &metatile, metatile::Layer layer, metatile::Subtile subtile, const std::vector< std::size_t > &indexes, const Rgba32 &extrinsic_transparency) const override
std::vector< std::string > print_metatile(const Metatile< Rgba32 > &metatile, metatile::Layer layer, const Rgba32 &extrinsic_transparency) const override
AsciiTilePrinter(gsl::not_null< TextFormatter * > format)
std::vector< std::string > print_tile(const PixelTile< Rgba32 > &tile, const Rgba32 &extrinsic_transparency) const override
The core tileset entity - a 2x2 grid of PixelTile objects arranged into three layers.
Definition metatile.hpp:224
An 8x8 tile backed by literal-array-based per-pixel storage of an arbitrary pixel type.
Represents a 32-bit RGBA color.
Definition rgba32.hpp:21
Abstract base class for applying text styling with context-aware formatting.
A collection of printer functions for various tile types.