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 porytiles {
10
12class Tileset {
13 public:
15 std::string name,
16 std::unique_ptr<PorytilesTilesetComponent> porytiles_component,
17 std::unique_ptr<PorymapTilesetComponent> porymap_component)
18 : name_{std::move(name)}, porytiles_component_{std::move(porytiles_component)},
19 porymap_component_{std::move(porymap_component)}
20 {
21
22 if (porytiles_component_ == nullptr) {
23 panic("porytiles_component was null");
24 }
25 if (porymap_component_ == nullptr) {
26 panic("porymap_component was null");
27 }
28 }
29
30 [[nodiscard]] const std::string &name() const
31 {
32 return name_;
33 }
34
36 {
37 return *porytiles_component_;
38 }
39
41 {
42 return *porytiles_component_;
43 }
44
45 [[nodiscard]] const PorymapTilesetComponent &porymap_component() const
46 {
47 return *porymap_component_;
48 }
49
51 {
52 return *porymap_component_;
53 }
54
55 void porytiles_component(std::unique_ptr<PorytilesTilesetComponent> porytiles_component)
56 {
57 if (porytiles_component == nullptr) {
58 panic("porytiles_component was null");
59 }
60 porytiles_component_ = std::move(porytiles_component);
61 }
62
63 void porymap_component(std::unique_ptr<PorymapTilesetComponent> porymap_component)
64 {
65 if (porymap_component == nullptr) {
66 panic("porymap_component was null");
67 }
68 porymap_component_ = std::move(porymap_component);
69 }
70
71 private:
72 std::string name_;
73 std::unique_ptr<PorytilesTilesetComponent> porytiles_component_;
74 std::unique_ptr<PorymapTilesetComponent> porymap_component_;
75};
76
77} // namespace porytiles
A complete tileset containing both Porytiles and Porymap components.
Definition tileset.hpp:12
void porytiles_component(std::unique_ptr< PorytilesTilesetComponent > porytiles_component)
Definition tileset.hpp:55
Tileset(std::string name, std::unique_ptr< PorytilesTilesetComponent > porytiles_component, std::unique_ptr< PorymapTilesetComponent > porymap_component)
Definition tileset.hpp:14
const PorytilesTilesetComponent & porytiles_component() const
Definition tileset.hpp:35
PorymapTilesetComponent & porymap_component()
Definition tileset.hpp:50
void porymap_component(std::unique_ptr< PorymapTilesetComponent > porymap_component)
Definition tileset.hpp:63
PorytilesTilesetComponent & porytiles_component()
Definition tileset.hpp:40
const PorymapTilesetComponent & porymap_component() const
Definition tileset.hpp:45
const std::string & name() const
Definition tileset.hpp:30
void panic(const StringViewSourceLoc &s)
Unconditionally terminates the program with a panic message.
Definition panic.cpp:43