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 <map>
5#include <string>
6#include <vector>
7
16
17namespace porytiles {
18
20 public:
22
32
42
43 void set_pal(std::size_t pal_index, Palette<Rgba32, pal::max_size> pal);
44
45 [[nodiscard]] const Palette<Rgba32, pal::max_size> &pal_at(std::size_t pal_index) const;
46
47 [[nodiscard]] bool is_empty() const;
48
50
52
53 [[nodiscard]] bool has_anim(const std::string &name) const
54 {
55 return anims_.contains(name);
56 }
57
58 [[nodiscard]] const Animation<IndexPixel> &anim_for_name(const std::string &name) const
59 {
60 return anims_.at(name);
61 }
62
63 [[nodiscard]] const std::vector<TilemapEntry> &metatiles_bin() const
64 {
65 return metatiles_bin_;
66 }
67
68 [[nodiscard]] std::vector<TilemapEntry> &metatiles_bin()
69 {
70 return metatiles_bin_;
71 }
72
73 void metatiles_bin(const std::vector<TilemapEntry> &new_entries)
74 {
75 metatiles_bin_ = new_entries;
76 }
77
78 [[nodiscard]] const std::vector<MetatileAttribute> &metatile_attributes_bin() const
79 {
80 return metatile_attributes_;
81 }
82
83 [[nodiscard]] const Image<IndexPixel> &tiles_png() const
84 {
85 return tiles_png_;
86 }
87
89 {
90 tiles_png_ = tiles_png;
91 }
92
93 [[nodiscard]] const std::array<Palette<Rgba32, pal::max_size>, pal::num_pals> &pals() const
94 {
95 return pals_;
96 }
97
98 [[nodiscard]] const std::map<std::string, Animation<IndexPixel>> &anims() const
99 {
100 return anims_;
101 }
102
103 [[nodiscard]] std::map<std::string, Animation<IndexPixel>> &anims()
104 {
105 return anims_;
106 }
107
108 private:
109 std::vector<TilemapEntry> metatiles_bin_;
110 std::vector<MetatileAttribute> metatile_attributes_;
111 Image<IndexPixel> tiles_png_;
112 std::array<Palette<Rgba32, pal::max_size>, pal::num_pals> pals_;
113 std::map<std::string, Animation<IndexPixel>> anims_;
114};
115
116} // namespace porytiles
A complete tileset animation with name, configuration, and frame data.
Definition animation.hpp:78
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:23
Represents the attributes of a single metatile.
A generic palette container for colors that support transparency checking.
Definition palette.hpp:47
const std::array< Palette< Rgba32, pal::max_size >, pal::num_pals > & pals() const
const std::map< std::string, Animation< IndexPixel > > & anims() const
void tiles_png(const Image< IndexPixel > &tiles_png)
const std::vector< TilemapEntry > & metatiles_bin() const
const Animation< IndexPixel > & anim_for_name(const std::string &name) const
ChainableResult< LayerMode > detect_layer_mode() const
const Palette< Rgba32, pal::max_size > & pal_at(std::size_t pal_index) const
void metatiles_bin(const std::vector< TilemapEntry > &new_entries)
bool has_anim(const std::string &name) const
void add_anim(Animation< IndexPixel > anim)
std::map< std::string, Animation< IndexPixel > > & anims()
const std::vector< MetatileAttribute > & metatile_attributes_bin() const
void push_back_tilemap_entry(TilemapEntry entry)
Add a TilemapEntry to the end of the entry vector.
void set_pal(std::size_t pal_index, Palette< Rgba32, pal::max_size > pal)
void push_back_attribute(MetatileAttribute attribute)
Add a MetatileAttribute to the end of the attribute vector.
const Image< IndexPixel > & tiles_png() const
std::vector< TilemapEntry > & metatiles_bin()
Represents a tilemap entry referencing a tile with palette and flip attributes.
constexpr std::size_t num_pals
Definition palette.hpp:21