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
22 public:
23 virtual ~TilesetArtifactWriter() = default;
24
32 [[nodiscard]] virtual ChainableResult<void> begin_transaction() = 0;
33
42 [[nodiscard]] virtual ChainableResult<void> commit() = 0;
43
52 [[nodiscard]] virtual ChainableResult<void> rollback() = 0;
53
54 // Porymap artifacts
55 [[nodiscard]] virtual ChainableResult<void>
56 write_metatiles_bin(const ArtifactKey &dest_key, const Tileset &src) = 0;
57
58 [[nodiscard]] virtual ChainableResult<void>
59 write_metatile_attributes_bin(const ArtifactKey &dest_key, const Tileset &src) = 0;
60
61 [[nodiscard]] virtual ChainableResult<void> write_tiles_png(const ArtifactKey &dest_key, const Tileset &src) = 0;
62
63 [[nodiscard]] virtual ChainableResult<void>
64 write_porymap_palette_n(const ArtifactKey &dest_key, const Tileset &src, std::size_t index) = 0;
65
67 const ArtifactKey &dest_key,
68 const Tileset &src,
69 const std::string &anim_name,
70 const std::string &frame_name) = 0;
71
81 [[nodiscard]] virtual ChainableResult<void>
82 write_porymap_anim_params(const ArtifactKey &dest_key, const Tileset &src) = 0;
83
84 // Porytiles artifacts
85 [[nodiscard]] virtual ChainableResult<void> write_bottom_png(const ArtifactKey &dest_key, const Tileset &src) = 0;
86
87 [[nodiscard]] virtual ChainableResult<void> write_middle_png(const ArtifactKey &dest_key, const Tileset &src) = 0;
88
89 [[nodiscard]] virtual ChainableResult<void> write_top_png(const ArtifactKey &dest_key, const Tileset &src) = 0;
90
91 [[nodiscard]] virtual ChainableResult<void>
92 write_attributes_csv(const ArtifactKey &dest_key, const Tileset &src) = 0;
93
94 [[nodiscard]] virtual ChainableResult<void>
95 write_porytiles_palette_n(const ArtifactKey &dest_key, const Tileset &src, std::size_t index) = 0;
96
98 const ArtifactKey &dest_key,
99 const Tileset &src,
100 const std::string &anim_name,
101 const std::string &frame_name) = 0;
102
112 [[nodiscard]] virtual ChainableResult<void>
113 write_porytiles_anim_params(const ArtifactKey &dest_key, const Tileset &src) = 0;
114};
115
116} // 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_porymap_palette_n(const ArtifactKey &dest_key, const Tileset &src, std::size_t index)=0
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_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_porytiles_palette_n(const ArtifactKey &dest_key, const Tileset &src, std::size_t index)=0
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 ~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:12