Porytiles
Loading...
Searching...
No Matches
tileset.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <string>
5
8
9namespace porytiles2 {
10
14class Tileset {
15 public:
17 std::string name,
18 std::unique_ptr<PorytilesTilesetComponent> porytiles_component,
19 std::unique_ptr<PorymapTilesetComponent> porymap_component)
20 : name_{std::move(name)}, porytiles_component_{std::move(porytiles_component)},
21 porymap_component_{std::move(porymap_component)}
22 {
23
24 if (porytiles_component_ == nullptr) {
25 panic("porytiles_component was null");
26 }
27 if (porymap_component_ == nullptr) {
28 panic("porymap_component was null");
29 }
30 }
31
32 [[nodiscard]] const std::string &name() const
33 {
34 return name_;
35 }
36
38 {
39 return *porytiles_component_;
40 }
41
43 {
44 return *porytiles_component_;
45 }
46
47 [[nodiscard]] const PorymapTilesetComponent &porymap_component() const
48 {
49 return *porymap_component_;
50 }
51
53 {
54 return *porymap_component_;
55 }
56
57 void porytiles_component(std::unique_ptr<PorytilesTilesetComponent> porytiles_component)
58 {
59 if (porytiles_component == nullptr) {
60 panic("porytiles_component was null");
61 }
62 porytiles_component_ = std::move(porytiles_component);
63 }
64
65 void porymap_component(std::unique_ptr<PorymapTilesetComponent> porymap_component)
66 {
67 if (porymap_component == nullptr) {
68 panic("porymap_component was null");
69 }
70 porymap_component_ = std::move(porymap_component);
71 }
72
73 private:
74 std::string name_;
75 std::unique_ptr<PorytilesTilesetComponent> porytiles_component_;
76 std::unique_ptr<PorymapTilesetComponent> porymap_component_;
77};
78
79} // namespace porytiles2
A complete tileset containing both Porytiles and Porymap components.
Definition tileset.hpp:14
void porymap_component(std::unique_ptr< PorymapTilesetComponent > porymap_component)
Definition tileset.hpp:65
void porytiles_component(std::unique_ptr< PorytilesTilesetComponent > porytiles_component)
Definition tileset.hpp:57
const PorytilesTilesetComponent & porytiles_component() const
Definition tileset.hpp:37
Tileset(std::string name, std::unique_ptr< PorytilesTilesetComponent > porytiles_component, std::unique_ptr< PorymapTilesetComponent > porymap_component)
Definition tileset.hpp:16
const PorymapTilesetComponent & porymap_component() const
Definition tileset.hpp:47
PorymapTilesetComponent & porymap_component()
Definition tileset.hpp:52
const std::string & name() const
Definition tileset.hpp:32
PorytilesTilesetComponent & porytiles_component()
Definition tileset.hpp:42
void panic(const StringViewSourceLoc &s)
Unconditionally terminates the program with a panic message.
Definition panic.hpp:53