44 const std::string &tileset_name,
const std::string &anim_name,
const std::string &frame_name)
const = 0;
63 const std::string &tileset_name,
const std::string &anim_name,
const std::string &frame_name)
const = 0;
147 std::vector<ArtifactKey> result;
152 std::vector<ArtifactKey>,
153 "Failed to get Porymap artifact keys.");
155 result.push_back(metatiles_key);
161 std::vector<ArtifactKey>,
162 "Failed to get Porymap artifact keys.");
164 result.push_back(attribute_key);
170 std::vector<ArtifactKey>,
171 "Failed to get Porymap artifact keys.");
173 result.push_back(tiles_png_key);
180 std::vector<ArtifactKey>,
181 "Failed to get Porymap artifact keys.");
183 result.push_back(palette_key);
190 std::vector<ArtifactKey>,
191 "Failed to get Porymap artifact keys.");
192 for (
const auto &anim : porymap_anims) {
196 std::vector<ArtifactKey>,
197 "Failed to get Porymap artifact keys.");
198 for (
const auto &frame : frames) {
202 std::vector<ArtifactKey>,
203 "Failed to get Porymap artifact keys.");
205 result.push_back(frame_n_key);
211 generated_anim_code_key,
213 std::vector<ArtifactKey>,
214 "Failed to get Porymap artifact keys.");
216 result.push_back(generated_anim_code_key);
233 std::vector<ArtifactKey> result;
238 std::vector<ArtifactKey>,
239 "Failed to get Porytiles artifact keys.");
241 result.push_back(bottom_png_key);
247 std::vector<ArtifactKey>,
248 "Failed to get Porytiles artifact keys.");
250 result.push_back(middle_png_key);
256 std::vector<ArtifactKey>,
257 "Failed to get Porytiles artifact keys.");
259 result.push_back(top_png_key);
265 std::vector<ArtifactKey>,
266 "Failed to get Porytiles artifact keys.");
268 result.push_back(attribute_csv_key);
275 std::vector<ArtifactKey>,
276 "Failed to get Porytiles artifact keys.");
278 result.push_back(override_key);
285 std::vector<ArtifactKey>,
286 "Failed to get Porytiles artifact keys.");
287 for (
const auto &anim : porytiles_anims) {
291 std::vector<ArtifactKey>,
292 "Tileset load failed.");
297 std::vector<ArtifactKey>,
298 "Failed to get Porytiles artifact keys.");
299 for (
const auto &frame : frames) {
303 std::vector<ArtifactKey>,
304 "Failed to get Porytiles artifact keys.");
306 result.push_back(frame_n_key);
314 std::vector<ArtifactKey>,
315 "Failed to get Porytiles artifact keys.");
317 result.push_back(anim_json_key);
338 std::vector<ArtifactKey>,
339 "Failed to get Porytiles artifact keys.");
343 std::vector<ArtifactKey>,
344 "Failed to get Porymap artifact keys.");
346 std::vector<ArtifactKey> result;
347 result.reserve(porytiles_keys.size() + porymap_keys.size());
348 result.insert(result.end(), porytiles_keys.begin(), porytiles_keys.end());
349 result.insert(result.end(), porymap_keys.begin(), porymap_keys.end());
#define PT_TRY_ASSIGN_CHAIN_ERR(var, expr, return_type,...)
Unwraps a ChainableResult, chaining a new error message on failure.
A type-safe wrapper for artifact keys.
A result type that maintains a chainable sequence of errors for debugging and error reporting.
Abstract interface for generating keys and discovering tileset artifacts in a backing store.
virtual ChainableResult< ArtifactKey > key_for_porytiles_palette_n(const std::string &tileset_name, std::size_t index) const =0
virtual ChainableResult< ArtifactKey > key_for_porymap_palette_n(const std::string &tileset_name, std::size_t index) const =0
virtual ChainableResult< std::set< std::string > > discover_porytiles_anims(const std::string &tileset_name) const =0
Discovers the names of all Porytiles animations available for a tileset.
virtual ChainableResult< std::vector< ArtifactKey > > get_all_artifact_keys(const std::string &tileset_name) const
Gets the keys for all tileset artifacts (both Porytiles and Porymap) present in the given Tileset.
virtual ChainableResult< std::set< std::string > > discover_porymap_anims(const std::string &tileset_name) const =0
Discovers the names of all Porymap animations available for a tileset.
virtual ChainableResult< ArtifactKey > key_for_attributes_csv(const std::string &tileset_name) const =0
virtual ChainableResult< ArtifactKey > key_for_metatiles_bin(const std::string &tileset_name) const =0
virtual ChainableResult< std::vector< ArtifactKey > > get_porytiles_artifact_keys(const std::string &tileset_name) const
Gets the keys for all Porytiles artifacts present in the given Tileset.
virtual ChainableResult< ArtifactKey > key_for_porytiles_anim_frame(const std::string &tileset_name, const std::string &anim_name, const std::string &frame_name) const =0
virtual ChainableResult< ArtifactKey > key_for_metatile_attributes_bin(const std::string &tileset_name) const =0
virtual ChainableResult< std::set< std::string > > discover_porymap_anim_frames(const std::string &tileset_name, const std::string &anim_name) const =0
Discovers the frame indices for a specific Porymap animation.
virtual ChainableResult< ArtifactKey > key_for_porytiles_anim_params(const std::string &tileset_name) const =0
Returns the key for Porytiles animation parameters.
virtual ChainableResult< ArtifactKey > key_for_porymap_anim_params(const std::string &tileset_name) const =0
virtual ChainableResult< std::set< std::string > > discover_porytiles_anim_frames(const std::string &tileset_name, const std::string &anim_name) const =0
Discovers the frame indices for a specific Porytiles animation.
virtual ChainableResult< ArtifactKey > key_for_middle_png(const std::string &tileset_name) const =0
virtual ChainableResult< std::vector< ArtifactKey > > get_porymap_artifact_keys(const std::string &tileset_name) const
Gets the keys for all Porymap artifacts present in the given Tileset.
virtual ChainableResult< ArtifactKey > key_for_porymap_anim_frame(const std::string &tileset_name, const std::string &anim_name, const std::string &frame_name) const =0
virtual ~TilesetArtifactKeyProvider()=default
virtual ChainableResult< ArtifactKey > key_for_tiles_png(const std::string &tileset_name) const =0
virtual ChainableResult< ArtifactKey > key_for_top_png(const std::string &tileset_name) const =0
virtual ChainableResult< ArtifactKey > key_for_bottom_png(const std::string &tileset_name) const =0
virtual bool artifact_exists(const ArtifactKey &key) const =0
Checks whether an artifact exists in the backing store for the given key.
constexpr std::size_t num_palettes