65 [[nodiscard]]
virtual bool tileset_exists(
const std::string &tileset_name)
const = 0;
91 [[nodiscard]]
virtual std::set<int>
118 [[nodiscard]]
virtual std::set<int>
142 std::vector<ArtifactKey> result;
146 result.push_back(bottom_png_key);
151 result.push_back(middle_png_key);
156 result.push_back(top_png_key);
161 result.push_back(attr_csv_key);
167 for (
unsigned int i = 0; i <
num_pals; i++) {
170 result.push_back(override_key);
175 for (
const auto &anim : porytiles_anims) {
178 result.push_back(frame_00_key);
181 for (
const auto &frame : frames) {
184 result.push_back(frame_n_key);
205 std::vector<ArtifactKey> result;
209 result.push_back(metatiles_key);
214 result.push_back(attr_key);
219 result.push_back(tiles_png_key);
225 for (
unsigned int i = 0; i <
num_pals; i++) {
228 result.push_back(pal_key);
233 for (
const auto &anim : porymap_anims) {
236 result.push_back(frame_00_key);
239 for (
const auto &frame : frames) {
242 result.push_back(frame_n_key);
266 std::vector<ArtifactKey> result;
267 result.reserve(porytiles_keys.size() + porymap_keys.size());
268 result.insert(result.end(), porytiles_keys.begin(), porytiles_keys.end());
269 result.insert(result.end(), porymap_keys.begin(), porymap_keys.end());
A type-safe wrapper for artifact keys.
Abstract interface for generating keys and discovering tileset artifacts in a backing store.
virtual 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 std::set< int > 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 ArtifactKey key_for(const std::string &tileset_name, const TilesetArtifact &artifact) const =0
Constructs a key for a given tileset artifact.
virtual 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 bool artifact_exists(const ArtifactKey &key) const =0
Checks whether an artifact exists in the backing store for the given key.
virtual std::set< int > 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 bool tileset_exists(const std::string &tileset_name) const =0
Checks whether a tileset exists in the backing store for the given tileset name.
virtual 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 ~TilesetArtifactKeyProvider()=default
virtual 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 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.
Represents a Pokémon Generation III decomp tileset artifact with type and optional metadata.
Type
Enumeration of all supported tileset artifact types.
constexpr std::size_t num_pals