Porytiles
Loading...
Searching...
No Matches
project_layout_metadata.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstddef>
4#include <filesystem>
5#include <string>
6#include <utility>
7
8namespace porytiles {
9
32 public:
44 std::string id,
45 std::string name,
46 std::size_t width,
47 std::size_t height,
48 std::string primary_tileset,
49 std::string secondary_tileset,
50 std::filesystem::path border_filepath,
51 std::filesystem::path blockdata_filepath)
52 : id_{std::move(id)}, name_{std::move(name)}, width_{width}, height_{height},
53 primary_tileset_{std::move(primary_tileset)}, secondary_tileset_{std::move(secondary_tileset)},
54 border_filepath_{std::move(border_filepath)}, blockdata_filepath_{std::move(blockdata_filepath)}
55 {
56 }
57
58 [[nodiscard]] const std::string &id() const
59 {
60 return id_;
61 }
62
63 [[nodiscard]] const std::string &name() const
64 {
65 return name_;
66 }
67
68 [[nodiscard]] std::size_t width() const
69 {
70 return width_;
71 }
72
73 [[nodiscard]] std::size_t height() const
74 {
75 return height_;
76 }
77
78 [[nodiscard]] const std::string &primary_tileset() const
79 {
80 return primary_tileset_;
81 }
82
83 [[nodiscard]] const std::string &secondary_tileset() const
84 {
85 return secondary_tileset_;
86 }
87
88 [[nodiscard]] const std::filesystem::path &border_filepath() const
89 {
90 return border_filepath_;
91 }
92
93 [[nodiscard]] const std::filesystem::path &blockdata_filepath() const
94 {
95 return blockdata_filepath_;
96 }
97
98 private:
99 std::string id_;
100 std::string name_;
101 std::size_t width_;
102 std::size_t height_;
103 std::string primary_tileset_;
104 std::string secondary_tileset_;
105 std::filesystem::path border_filepath_;
106 std::filesystem::path blockdata_filepath_;
107};
108
109} // namespace porytiles
Represents parsed metadata for a single layout from layouts.json.
ProjectLayoutMetadata(std::string id, std::string name, std::size_t width, std::size_t height, std::string primary_tileset, std::string secondary_tileset, std::filesystem::path border_filepath, std::filesystem::path blockdata_filepath)
Constructs a ProjectLayoutMetadata from parsed layout fields.
const std::string & secondary_tileset() const
const std::string & primary_tileset() const
const std::filesystem::path & border_filepath() const
const std::filesystem::path & blockdata_filepath() const