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
25 public:
26 virtual ~TilesetArtifactReader() = default;
27
28 // Porymap artifacts
29 [[nodiscard]] virtual ChainableResult<void> read_metatiles_bin(Tileset &dest, const ArtifactKey &src_key) const = 0;
30
31 [[nodiscard]] virtual ChainableResult<void>
32 read_metatile_attributes_bin(Tileset &dest, const ArtifactKey &src_key) const = 0;
33
34 [[nodiscard]] virtual ChainableResult<void> read_tiles_png(Tileset &dest, const ArtifactKey &src_key) const = 0;
35
36 [[nodiscard]] virtual ChainableResult<void>
37 read_porymap_palette_n(Tileset &dest, const ArtifactKey &src_key, std::size_t index) const = 0;
38
40 Tileset &dest,
41 const std::string &anim_name,
42 const ArtifactKey &params_key,
43 const std::vector<std::pair<std::string, ArtifactKey>> &frame_keys) const = 0;
44
45 // Porytiles artifacts
46 [[nodiscard]] virtual ChainableResult<void> read_bottom_png(Tileset &dest, const ArtifactKey &src_key) const = 0;
47
48 [[nodiscard]] virtual ChainableResult<void> read_middle_png(Tileset &dest, const ArtifactKey &src_key) const = 0;
49
50 [[nodiscard]] virtual ChainableResult<void> read_top_png(Tileset &dest, const ArtifactKey &src_key) const = 0;
51
52 [[nodiscard]] virtual ChainableResult<void>
53 read_attributes_csv(Tileset &dest, const ArtifactKey &src_key) const = 0;
54
55 [[nodiscard]] virtual ChainableResult<void>
56 read_porytiles_palette_n(Tileset &dest, const ArtifactKey &src_key, std::size_t index) const = 0;
57
59 Tileset &dest,
60 const std::string &anim_name,
61 const ArtifactKey &params_key,
62 const std::optional<ArtifactKey> &key_frame_key,
63 const std::vector<std::pair<std::string, ArtifactKey>> &frame_keys) const = 0;
64
65 [[nodiscard]] virtual ChainableResult<void>
66 read_porytiles_primary_anim_references(Tileset &dest, const ArtifactKey &params_key) const = 0;
67};
68
69} // 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_porymap_palette_n(Tileset &dest, const ArtifactKey &src_key, std::size_t index) const =0
virtual ChainableResult< void > read_tiles_png(Tileset &dest, const ArtifactKey &src_key) 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_porytiles_palette_n(Tileset &dest, const ArtifactKey &src_key, std::size_t index) 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:12