Porytiles
Loading...
Searching...
No Matches
tile_metadata.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <variant>
4
5namespace porytiles {
6
8
10 std::size_t tile_index_;
11
12 public:
13 explicit FreeMetadata() : tile_index_{0} {}
14
15 [[nodiscard]] std::size_t tile_index() const {
16 return tile_index_;
17 }
18
19 void set_tile_index(const std::size_t tile_index) {
20 tile_index_ = tile_index;
21 }
22};
23
25 std::size_t metatile_index_;
26
27 public:
28 explicit LayeredMetadata() : metatile_index_{0} {}
29
30 [[nodiscard]] std::size_t metatile_index() const {
31 return metatile_index_;
32 }
33
34 void set_metatile_index(const std::size_t metatile_index) {
35 metatile_index_ = metatile_index;
36 }
37};
38
39using TileMetadata = std::variant<std::monostate, FreeMetadata, LayeredMetadata>;
40
41} // namespace porytiles
void set_tile_index(const std::size_t tile_index)
std::size_t tile_index() const
void set_metatile_index(const std::size_t metatile_index)
std::size_t metatile_index() const
std::variant< std::monostate, FreeMetadata, LayeredMetadata > TileMetadata