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
30
38
39 void set_palette(std::size_t palette_index, Palette<Rgba32, palette::max_size> palette);
40
41 [[nodiscard]] const Palette<Rgba32, palette::max_size> &palette_at(std::size_t palette_index) const;
42
43 [[nodiscard]] bool is_empty() const;
44
46
48
49 [[nodiscard]] bool has_anim(const std::string &name) const
50 {
51 return anims_.contains(name);
52 }
53
54 [[nodiscard]] const Animation<IndexPixel> &anim_for_name(const std::string &name) const
55 {
56 return anims_.at(name);
57 }
58
59 [[nodiscard]] const std::vector<TilemapEntry> &metatiles_bin() const
60 {
61 return metatiles_bin_;
62 }
63
64 [[nodiscard]] std::vector<TilemapEntry> &metatiles_bin()
65 {
66 return metatiles_bin_;
67 }
68
69 void metatiles_bin(const std::vector<TilemapEntry> &new_entries)
70 {
71 metatiles_bin_ = new_entries;
72 }
73
74 [[nodiscard]] const std::vector<MetatileAttribute> &metatile_attributes_bin() const
75 {
76 return metatile_attributes_;
77 }
78
79 [[nodiscard]] const Image<IndexPixel> &tiles_png() const
80 {
81 return tiles_png_;
82 }
83
85 {
86 tiles_png_ = tiles_png;
87 }
88
89 [[nodiscard]] const std::array<Palette<Rgba32, palette::max_size>, palette::num_palettes> &palettes() const
90 {
91 return palettes_;
92 }
93
94 [[nodiscard]] const std::map<std::string, Animation<IndexPixel>> &anims() const
95 {
96 return anims_;
97 }
98
99 [[nodiscard]] std::map<std::string, Animation<IndexPixel>> &anims()
100 {
101 return anims_;
102 }
103
104 private:
105 std::vector<TilemapEntry> metatiles_bin_;
106 std::vector<MetatileAttribute> metatile_attributes_;
107 Image<IndexPixel> tiles_png_;
108 std::array<Palette<Rgba32, palette::max_size>, palette::num_palettes> palettes_;
109 std::map<std::string, Animation<IndexPixel>> anims_;
110};
111
112} // namespace porytiles
A complete tileset animation with name, configuration, and frame data.
Definition animation.hpp:89
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:21
The attributes of a single metatile, modeled as a map of named field values.
A generic palette container for colors that support transparency checking.
Definition palette.hpp:45
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
const Palette< Rgba32, palette::max_size > & palette_at(std::size_t palette_index) const
ChainableResult< LayerMode > detect_layer_mode() 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 set_palette(std::size_t palette_index, Palette< Rgba32, palette::max_size > palette)
void push_back_tilemap_entry(TilemapEntry entry)
Add a TilemapEntry to the end of the entry vector.
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()
const std::array< Palette< Rgba32, palette::max_size >, palette::num_palettes > & palettes() const
Represents a tilemap entry referencing a tile with palette and flip attributes.
std::string name
constexpr std::size_t num_palettes
Definition palette.hpp:21