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
20class AsciiTilePrinter final : public TilePrinter {
21 public:
22 explicit AsciiTilePrinter(gsl::not_null<TextFormatter *> format) : format_{format} {}
23
24 [[nodiscard]] std::vector<std::string> print_metatile(
25 const Metatile<Rgba32> &metatile, metatile::Layer layer, const Rgba32 &extrinsic_transparency) const override;
26
27 [[nodiscard]] std::vector<std::string> print_metatile_tile_highlight(
28 const Metatile<Rgba32> &metatile,
29 metatile::Layer layer,
30 metatile::Subtile subtile,
31 const Rgba32 &extrinsic_transparency) const override;
32
33 [[nodiscard]] std::vector<std::string> print_metatile_pixel_highlight(
34 const Metatile<Rgba32> &metatile,
35 metatile::Layer layer,
36 metatile::Subtile subtile,
37 std::size_t row,
38 std::size_t col,
39 const Rgba32 &extrinsic_transparency) const override;
40
41 [[nodiscard]] std::vector<std::string> print_metatile_pixel_highlights(
42 const Metatile<Rgba32> &metatile,
43 metatile::Layer layer,
44 metatile::Subtile subtile,
45 const std::vector<std::size_t> &indexes,
46 const Rgba32 &extrinsic_transparency) const override;
47
48 [[nodiscard]] std::vector<std::string>
49 print_tile(const PixelTile<Rgba32> &tile, const Rgba32 &extrinsic_transparency) const override;
50
51 [[nodiscard]] std::vector<std::string>
52 print_tile(const PixelTile<IndexPixel> &tile, const Rgba32 &extrinsic_transparency) const override;
53
54 [[nodiscard]] std::vector<std::string> print_tile_pixel_highlight(
55 const PixelTile<Rgba32> &tile,
56 std::size_t row,
57 std::size_t col,
58 const Rgba32 &extrinsic_transparency) const override;
59
60 [[nodiscard]] std::vector<std::string> print_tile_pixel_highlights(
61 const PixelTile<Rgba32> &tile,
62 const std::vector<std::size_t> &indexes,
63 const Rgba32 &extrinsic_transparency) const override;
64
65 private:
66 TextFormatter *format_;
67};
68
69} // 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:186
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:23
Abstract base class for applying text styling with context-aware formatting.
A collection of printer functions for various tile types.