Porytiles
Loading...
Searching...
No Matches
porymap_tileset_component.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <array>
4#include <vector>
5
12
13namespace porytiles2 {
14
15namespace tileset {
16
17enum class LayerMode { dual, triple };
18
19inline std::string to_string(LayerMode mode)
20{
21 switch (mode) {
22 case LayerMode::dual:
23 return "dual";
25 return "triple";
26 }
27 panic("unhandled LayerMode value");
28}
29
30} // namespace tileset
31
33 public:
35
45
55
56 void set_pal(Palette<Rgba32> pal, unsigned int pal_index);
57
58 [[nodiscard]] const Palette<Rgba32> &pal_at(unsigned int pal_index) const;
59
60 [[nodiscard]] bool is_empty() const;
61
63
64 [[nodiscard]] const std::vector<TilemapEntry> &metatiles_bin() const
65 {
66 return metatiles_bin_;
67 }
68
69 [[nodiscard]] const std::vector<MetatileAttribute> &metatile_attributes_bin() const
70 {
71 return metatile_attributes_;
72 }
73
74 [[nodiscard]] const Image<IndexPixel> &tiles_png() const
75 {
76 return tiles_png_;
77 }
78
80 {
81 tiles_png_ = tiles_png;
82 }
83
84 [[nodiscard]] const std::array<Palette<Rgba32>, pal::num_pals> &pals() const
85 {
86 return pals_;
87 }
88
89 private:
90 std::vector<TilemapEntry> metatiles_bin_;
91 std::vector<MetatileAttribute> metatile_attributes_;
92 Image<IndexPixel> tiles_png_;
93 std::array<Palette<Rgba32>, pal::num_pals> pals_;
94};
95
96} // namespace porytiles2
A result type that maintains a chainable sequence of errors for debugging and error reporting.
A template for two-dimensional images with arbitrarily typed pixel values.
Definition image.hpp:24
A palette container for colors that support transparency checking.
Definition palette.hpp:34
void push_back_tilemap_entry(TilemapEntry entry)
Add a TilemapEntry to the end of the entry vector.
void set_pal(Palette< Rgba32 > pal, unsigned int pal_index)
const std::vector< TilemapEntry > & metatiles_bin() const
const std::array< Palette< Rgba32 >, pal::num_pals > & pals() const
ChainableResult< tileset::LayerMode > detect_layer_mode() const
void tiles_png(const Image< IndexPixel > &tiles_png)
void push_back_attribute(MetatileAttribute attribute)
Add a MetatileAttribute to the end of the attribute vector.
const Image< IndexPixel > & tiles_png() const
const Palette< Rgba32 > & pal_at(unsigned int pal_index) const
const std::vector< MetatileAttribute > & metatile_attributes_bin() const
Represents a tilemap entry referencing a tile with palette and flip attributes.
constexpr std::size_t num_pals
Definition palette.hpp:16
std::string to_string(LayerMode mode)
void panic(const StringViewSourceLoc &s)
Unconditionally terminates the program with a panic message.
Definition panic.hpp:53