Porytiles
Loading...
Searching...
No Matches
tileset_artifact_reader.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <any>
4#include <optional>
5#include <string>
6#include <utility>
7#include <vector>
8
11
12namespace porytiles {
13
27 public:
28 virtual ~TilesetArtifactReader() = default;
29
30 /*
31 * Porymap artifacts
32 */
33 [[nodiscard]] virtual ChainableResult<void> read_metatiles_bin(Tileset &dest, const ArtifactKey &src_key) const = 0;
34
35 [[nodiscard]] virtual ChainableResult<void>
36 read_metatile_attributes_bin(Tileset &dest, const ArtifactKey &src_key) const = 0;
37
38 [[nodiscard]] virtual ChainableResult<void> read_tiles_png(Tileset &dest, const ArtifactKey &src_key) const = 0;
39
40 [[nodiscard]] virtual ChainableResult<void>
41 read_porymap_pal_n(Tileset &dest, const ArtifactKey &src_key, std::size_t index) const = 0;
42
44 Tileset &dest,
45 const std::string &anim_name,
46 const ArtifactKey &params_key,
47 const std::vector<std::pair<std::string, ArtifactKey>> &frame_keys) const = 0;
48
49 /*
50 * Porytiles artifacts
51 */
52 [[nodiscard]] virtual ChainableResult<void> read_bottom_png(Tileset &dest, const ArtifactKey &src_key) const = 0;
53
54 [[nodiscard]] virtual ChainableResult<void> read_middle_png(Tileset &dest, const ArtifactKey &src_key) const = 0;
55
56 [[nodiscard]] virtual ChainableResult<void> read_top_png(Tileset &dest, const ArtifactKey &src_key) const = 0;
57
58 [[nodiscard]] virtual ChainableResult<void>
59 read_attributes_csv(Tileset &dest, const ArtifactKey &src_key) const = 0;
60
61 [[nodiscard]] virtual ChainableResult<void>
62 read_porytiles_pal_n(Tileset &dest, const ArtifactKey &src_key, std::size_t index) const = 0;
63
65 Tileset &dest,
66 const std::string &anim_name,
67 const ArtifactKey &params_key,
68 const std::optional<ArtifactKey> &key_frame_key,
69 const std::vector<std::pair<std::string, ArtifactKey>> &frame_keys) const = 0;
70
71 [[nodiscard]] virtual ChainableResult<void>
72 read_porytiles_primary_anim_references(Tileset &dest, const ArtifactKey &params_key) const = 0;
73};
74
75} // namespace porytiles
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 reading tileset artifacts from a backing store into a Tileset object.
virtual ChainableResult< void > read_attributes_csv(Tileset &dest, const ArtifactKey &src_key) const =0
virtual ChainableResult< void > read_porymap_anim(Tileset &dest, const std::string &anim_name, const ArtifactKey &params_key, const std::vector< std::pair< std::string, ArtifactKey > > &frame_keys) const =0
virtual ChainableResult< void > read_tiles_png(Tileset &dest, const ArtifactKey &src_key) const =0
virtual ChainableResult< void > read_porytiles_pal_n(Tileset &dest, const ArtifactKey &src_key, std::size_t index) const =0
virtual ChainableResult< void > read_porymap_pal_n(Tileset &dest, const ArtifactKey &src_key, std::size_t index) const =0
virtual ChainableResult< void > read_top_png(Tileset &dest, const ArtifactKey &src_key) const =0
virtual ChainableResult< void > read_metatile_attributes_bin(Tileset &dest, const ArtifactKey &src_key) const =0
virtual ChainableResult< void > read_porytiles_anim(Tileset &dest, const std::string &anim_name, const ArtifactKey &params_key, const std::optional< ArtifactKey > &key_frame_key, const std::vector< std::pair< std::string, ArtifactKey > > &frame_keys) const =0
virtual ChainableResult< void > read_middle_png(Tileset &dest, const ArtifactKey &src_key) const =0
virtual ChainableResult< void > read_porytiles_primary_anim_references(Tileset &dest, const ArtifactKey &params_key) const =0
virtual ChainableResult< void > read_metatiles_bin(Tileset &dest, const ArtifactKey &src_key) const =0
virtual ChainableResult< void > read_bottom_png(Tileset &dest, const ArtifactKey &src_key) const =0
virtual ~TilesetArtifactReader()=default
A complete tileset containing both Porytiles and Porymap components.
Definition tileset.hpp:14