48 const std::string &tileset_name,
const std::string &anim_name,
const std::string &frame_name)
const = 0;
69 const std::string &tileset_name,
const std::string &anim_name,
const std::string &frame_name)
const = 0;
169 std::vector<ArtifactKey> result;
174 std::vector<ArtifactKey>,
175 "Failed to get Porymap artifact keys.");
177 result.push_back(metatiles_key);
183 std::vector<ArtifactKey>,
184 "Failed to get Porymap artifact keys.");
186 result.push_back(attr_key);
192 std::vector<ArtifactKey>,
193 "Failed to get Porymap artifact keys.");
195 result.push_back(tiles_png_key);
202 std::vector<ArtifactKey>,
203 "Failed to get Porymap artifact keys.");
205 result.push_back(pal_key);
212 std::vector<ArtifactKey>,
213 "Failed to get Porymap artifact keys.");
214 for (
const auto &anim : porymap_anims) {
218 std::vector<ArtifactKey>,
219 "Failed to get Porymap artifact keys.");
220 for (
const auto &frame : frames) {
224 std::vector<ArtifactKey>,
225 "Failed to get Porymap artifact keys.");
227 result.push_back(frame_n_key);
233 generated_anim_code_key,
235 std::vector<ArtifactKey>,
236 "Failed to get Porymap artifact keys.");
238 result.push_back(generated_anim_code_key);
257 std::vector<ArtifactKey> result;
262 std::vector<ArtifactKey>,
263 "Failed to get Porytiles artifact keys.");
265 result.push_back(bottom_png_key);
271 std::vector<ArtifactKey>,
272 "Failed to get Porytiles artifact keys.");
274 result.push_back(middle_png_key);
280 std::vector<ArtifactKey>,
281 "Failed to get Porytiles artifact keys.");
283 result.push_back(top_png_key);
289 std::vector<ArtifactKey>,
290 "Failed to get Porytiles artifact keys.");
292 result.push_back(attr_csv_key);
299 std::vector<ArtifactKey>,
300 "Failed to get Porytiles artifact keys.");
302 result.push_back(override_key);
309 std::vector<ArtifactKey>,
310 "Failed to get Porytiles artifact keys.");
311 for (
const auto &anim : porytiles_anims) {
315 std::vector<ArtifactKey>,
316 "Tileset load failed.");
321 std::vector<ArtifactKey>,
322 "Failed to get Porytiles artifact keys.");
323 for (
const auto &frame : frames) {
327 std::vector<ArtifactKey>,
328 "Failed to get Porytiles artifact keys.");
330 result.push_back(frame_n_key);
338 std::vector<ArtifactKey>,
339 "Failed to get Porytiles artifact keys.");
341 result.push_back(anim_json_key);
364 std::vector<ArtifactKey>,
365 "Failed to get Porytiles artifact keys.");
369 std::vector<ArtifactKey>,
370 "Failed to get Porymap artifact keys.");
372 std::vector<ArtifactKey> result;
373 result.reserve(porytiles_keys.size() + porymap_keys.size());
374 result.insert(result.end(), porytiles_keys.begin(), porytiles_keys.end());
375 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< 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< ArtifactKey > key_for_porytiles_pal_n(const std::string &tileset_name, std::size_t index) 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_porymap_pal_n(const std::string &tileset_name, std::size_t index) const =0
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_pals