Porytiles
Loading...
Searching...
No Matches
tileset_artifact_writer.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <any>
4
8
9namespace porytiles {
10
24 public:
25 virtual ~TilesetArtifactWriter() = default;
26
36 [[nodiscard]] virtual ChainableResult<void> begin_transaction() = 0;
37
48 [[nodiscard]] virtual ChainableResult<void> commit() = 0;
49
60 [[nodiscard]] virtual ChainableResult<void> rollback() = 0;
61
62 /*
63 * Porymap artifacts
64 */
65 [[nodiscard]] virtual ChainableResult<void>
66 write_metatiles_bin(const ArtifactKey &dest_key, const Tileset &src) = 0;
67
68 [[nodiscard]] virtual ChainableResult<void>
69 write_metatile_attributes_bin(const ArtifactKey &dest_key, const Tileset &src) = 0;
70
71 [[nodiscard]] virtual ChainableResult<void> write_tiles_png(const ArtifactKey &dest_key, const Tileset &src) = 0;
72
73 [[nodiscard]] virtual ChainableResult<void>
74 write_porymap_pal_n(const ArtifactKey &dest_key, const Tileset &src, std::size_t index) = 0;
75
77 const ArtifactKey &dest_key,
78 const Tileset &src,
79 const std::string &anim_name,
80 const std::string &frame_name) = 0;
81
93 [[nodiscard]] virtual ChainableResult<void>
94 write_porymap_anim_params(const ArtifactKey &dest_key, const Tileset &src) = 0;
95
96 /*
97 * Porytiles artifacts
98 */
99 [[nodiscard]] virtual ChainableResult<void> write_bottom_png(const ArtifactKey &dest_key, const Tileset &src) = 0;
100
101 [[nodiscard]] virtual ChainableResult<void> write_middle_png(const ArtifactKey &dest_key, const Tileset &src) = 0;
102
103 [[nodiscard]] virtual ChainableResult<void> write_top_png(const ArtifactKey &dest_key, const Tileset &src) = 0;
104
105 [[nodiscard]] virtual ChainableResult<void>
106 write_attributes_csv(const ArtifactKey &dest_key, const Tileset &src) = 0;
107
108 [[nodiscard]] virtual ChainableResult<void>
109 write_porytiles_pal_n(const ArtifactKey &dest_key, const Tileset &src, std::size_t index) = 0;
110
112 const ArtifactKey &dest_key,
113 const Tileset &src,
114 const std::string &anim_name,
115 const std::string &frame_name) = 0;
116
128 [[nodiscard]] virtual ChainableResult<void>
129 write_porytiles_anim_params(const ArtifactKey &dest_key, const Tileset &src) = 0;
130};
131
132} // 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 writing tileset artifacts from a Tileset object to a backing store.
virtual ChainableResult< void > write_porytiles_anim_frame(const ArtifactKey &dest_key, const Tileset &src, const std::string &anim_name, const std::string &frame_name)=0
virtual ChainableResult< void > write_porytiles_pal_n(const ArtifactKey &dest_key, const Tileset &src, std::size_t index)=0
virtual ChainableResult< void > write_porymap_anim_params(const ArtifactKey &dest_key, const Tileset &src)=0
Writes the animation parameters to the Porymap component backing store.
virtual ChainableResult< void > write_metatiles_bin(const ArtifactKey &dest_key, const Tileset &src)=0
virtual ChainableResult< void > begin_transaction()=0
Begins a new transaction for atomic write operations.
virtual ChainableResult< void > write_porymap_pal_n(const ArtifactKey &dest_key, const Tileset &src, std::size_t index)=0
virtual ~TilesetArtifactWriter()=default
virtual ChainableResult< void > write_tiles_png(const ArtifactKey &dest_key, const Tileset &src)=0
virtual ChainableResult< void > rollback()=0
Rolls back all buffered write operations in the current transaction.
virtual ChainableResult< void > write_bottom_png(const ArtifactKey &dest_key, const Tileset &src)=0
virtual ChainableResult< void > write_top_png(const ArtifactKey &dest_key, const Tileset &src)=0
virtual ChainableResult< void > write_porytiles_anim_params(const ArtifactKey &dest_key, const Tileset &src)=0
Writes animation parameters to the Porytiles component backing store.
virtual ChainableResult< void > write_metatile_attributes_bin(const ArtifactKey &dest_key, const Tileset &src)=0
virtual ChainableResult< void > write_attributes_csv(const ArtifactKey &dest_key, const Tileset &src)=0
virtual ChainableResult< void > write_middle_png(const ArtifactKey &dest_key, const Tileset &src)=0
virtual ChainableResult< void > write_porymap_anim_frame(const ArtifactKey &dest_key, const Tileset &src, const std::string &anim_name, const std::string &frame_name)=0
virtual ChainableResult< void > commit()=0
Commits all buffered write operations in the current transaction.
A complete tileset containing both Porytiles and Porymap components.
Definition tileset.hpp:14