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
34 public:
48 std::string id,
49 std::string name,
50 std::size_t width,
51 std::size_t height,
52 std::string primary_tileset,
53 std::string secondary_tileset,
54 std::filesystem::path border_filepath,
55 std::filesystem::path blockdata_filepath)
56 : id_{std::move(id)}, name_{std::move(name)}, width_{width}, height_{height},
57 primary_tileset_{std::move(primary_tileset)}, secondary_tileset_{std::move(secondary_tileset)},
58 border_filepath_{std::move(border_filepath)}, blockdata_filepath_{std::move(blockdata_filepath)}
59 {
60 }
61
62 [[nodiscard]] const std::string &id() const
63 {
64 return id_;
65 }
66
67 [[nodiscard]] const std::string &name() const
68 {
69 return name_;
70 }
71
72 [[nodiscard]] std::size_t width() const
73 {
74 return width_;
75 }
76
77 [[nodiscard]] std::size_t height() const
78 {
79 return height_;
80 }
81
82 [[nodiscard]] const std::string &primary_tileset() const
83 {
84 return primary_tileset_;
85 }
86
87 [[nodiscard]] const std::string &secondary_tileset() const
88 {
89 return secondary_tileset_;
90 }
91
92 [[nodiscard]] const std::filesystem::path &border_filepath() const
93 {
94 return border_filepath_;
95 }
96
97 [[nodiscard]] const std::filesystem::path &blockdata_filepath() const
98 {
99 return blockdata_filepath_;
100 }
101
102 private:
103 std::string id_;
104 std::string name_;
105 std::size_t width_;
106 std::size_t height_;
107 std::string primary_tileset_;
108 std::string secondary_tileset_;
109 std::filesystem::path border_filepath_;
110 std::filesystem::path blockdata_filepath_;
111};
112
113} // 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