Porytiles
Loading...
Searching...
No Matches
porytiles::ProjectTilesetArtifactWriter Class Referencefinal

Provides a filesystem-based implementation for TilesetArtifactWriter. More...

#include <project_tileset_artifact_writer.hpp>

Inheritance diagram for porytiles::ProjectTilesetArtifactWriter:
[legend]
Collaboration diagram for porytiles::ProjectTilesetArtifactWriter:
[legend]

Public Member Functions

 ProjectTilesetArtifactWriter (gsl::not_null< DomainConfig * > domain_config, gsl::not_null< InfraConfig * > infra_config, std::filesystem::path project_root, BaseGame base_game, std::size_t metatile_attr_size, gsl::not_null< const TextFormatter * > format, gsl::not_null< const UserDiagnostics * > diag, gsl::not_null< PngRgbaImageSaver * > png_rgba_saver, gsl::not_null< PngIndexedImageSaver * > png_indexed_saver, gsl::not_null< FilePalSaver * > pal_saver, gsl::not_null< const AnimJsonParser * > anim_json_parser, gsl::not_null< const AnimCodeGenerator * > anim_code_generator, gsl::not_null< const BehaviorMapProvider * > behavior_map, const TerrainTypeMapProvider *terrain_map=nullptr, const EncounterTypeMapProvider *encounter_map=nullptr)
 
ChainableResult< void > begin_transaction () override
 Begins a new transaction for atomic write operations.
 
ChainableResult< void > commit () override
 Commits all buffered write operations in the current transaction.
 
ChainableResult< void > rollback () override
 Rolls back all buffered write operations in the current transaction.
 
ChainableResult< void > write_metatiles_bin (const ArtifactKey &dest_key, const Tileset &src) override
 
ChainableResult< void > write_metatile_attributes_bin (const ArtifactKey &dest_key, const Tileset &src) override
 
ChainableResult< void > write_tiles_png (const ArtifactKey &dest_key, const Tileset &src) override
 
ChainableResult< void > write_porymap_pal_n (const ArtifactKey &dest_key, const Tileset &src, std::size_t index) override
 
ChainableResult< void > write_porymap_anim_frame (const ArtifactKey &dest_key, const Tileset &src, const std::string &anim_name, const std::string &frame_name) override
 
ChainableResult< void > write_porymap_anim_params (const ArtifactKey &dest_key, const Tileset &src) override
 Writes the animation parameters to the Porymap component backing store.
 
ChainableResult< void > write_bottom_png (const ArtifactKey &dest_key, const Tileset &src) override
 
ChainableResult< void > write_middle_png (const ArtifactKey &dest_key, const Tileset &src) override
 
ChainableResult< void > write_top_png (const ArtifactKey &dest_key, const Tileset &src) override
 
ChainableResult< void > write_attributes_csv (const ArtifactKey &dest_key, const Tileset &src) override
 
ChainableResult< void > write_porytiles_pal_n (const ArtifactKey &dest_key, const Tileset &src, std::size_t index) override
 
ChainableResult< void > write_porytiles_anim_frame (const ArtifactKey &dest_key, const Tileset &src, const std::string &anim_name, const std::string &frame_name) override
 
ChainableResult< void > write_porytiles_anim_params (const ArtifactKey &dest_key, const Tileset &src) override
 Writes animation parameters to the Porytiles component backing store.
 
- Public Member Functions inherited from porytiles::TilesetArtifactWriter
virtual ~TilesetArtifactWriter ()=default
 

Detailed Description

Provides a filesystem-based implementation for TilesetArtifactWriter.

This class implements the TilesetArtifactWriter interface to provide writing functionality for tileset artifacts. It operates within the context of a Pokémon Gen III decompilation project on the local filesystem.

Definition at line 35 of file project_tileset_artifact_writer.hpp.

Constructor & Destructor Documentation

◆ ProjectTilesetArtifactWriter()

porytiles::ProjectTilesetArtifactWriter::ProjectTilesetArtifactWriter ( gsl::not_null< DomainConfig * >  domain_config,
gsl::not_null< InfraConfig * >  infra_config,
std::filesystem::path  project_root,
BaseGame  base_game,
std::size_t  metatile_attr_size,
gsl::not_null< const TextFormatter * >  format,
gsl::not_null< const UserDiagnostics * >  diag,
gsl::not_null< PngRgbaImageSaver * >  png_rgba_saver,
gsl::not_null< PngIndexedImageSaver * >  png_indexed_saver,
gsl::not_null< FilePalSaver * >  pal_saver,
gsl::not_null< const AnimJsonParser * >  anim_json_parser,
gsl::not_null< const AnimCodeGenerator * >  anim_code_generator,
gsl::not_null< const BehaviorMapProvider * >  behavior_map,
const TerrainTypeMapProvider terrain_map = nullptr,
const EncounterTypeMapProvider encounter_map = nullptr 
)
inline

Definition at line 37 of file project_tileset_artifact_writer.hpp.

Member Function Documentation

◆ begin_transaction()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::begin_transaction ( )
overridevirtual

Begins a new transaction for atomic write operations.

Starts a transaction that buffers all subsequent write operations until a commit() call. If a transaction is already active, this should return an error.

Returns
Empty ChainableResult on success, otherwise an error description

Implements porytiles::TilesetArtifactWriter.

Definition at line 458 of file project_tileset_artifact_writer.cpp.

◆ commit()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::commit ( )
overridevirtual

Commits all buffered write operations in the current transaction.

Finalizes and persists all write operations that were buffered since begin_transaction() was called. After commit, the transaction is closed and a new one must be started for further transactional writes. If no transaction is active, this should return an error.

Returns
Empty ChainableResult on success, otherwise an error chain

Implements porytiles::TilesetArtifactWriter.

Definition at line 474 of file project_tileset_artifact_writer.cpp.

◆ rollback()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::rollback ( )
overridevirtual

Rolls back all buffered write operations in the current transaction.

Discards all write operations that were buffered since begin_transaction() was called. After rollback, the transaction is closed and a new one must be started for further transactional writes. If no transaction is active, this should return an error.

Returns
Empty ChainableResult on success, otherwise an error description

Implements porytiles::TilesetArtifactWriter.

Definition at line 595 of file project_tileset_artifact_writer.cpp.

◆ write_attributes_csv()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_attributes_csv ( const ArtifactKey dest_key,
const Tileset src 
)
overridevirtual

◆ write_bottom_png()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_bottom_png ( const ArtifactKey dest_key,
const Tileset src 
)
overridevirtual

◆ write_metatile_attributes_bin()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_metatile_attributes_bin ( const ArtifactKey dest_key,
const Tileset src 
)
overridevirtual

◆ write_metatiles_bin()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_metatiles_bin ( const ArtifactKey dest_key,
const Tileset src 
)
overridevirtual

◆ write_middle_png()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_middle_png ( const ArtifactKey dest_key,
const Tileset src 
)
overridevirtual

◆ write_porymap_anim_frame()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_porymap_anim_frame ( const ArtifactKey dest_key,
const Tileset src,
const std::string &  anim_name,
const std::string &  frame_name 
)
overridevirtual

◆ write_porymap_anim_params()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_porymap_anim_params ( const ArtifactKey dest_key,
const Tileset src 
)
overridevirtual

Writes the animation parameters to the Porymap component backing store.

Generates and writes the animation parameters for all animations in the Porymap component. The tileset_root_key provides the path used for constructing INCBIN statements.

Parameters
dest_keyKey identifying where to write the parameters
srcThe Tileset object to extract animation data from
Returns
Empty ChainableResult on success, otherwise an error chain

Implements porytiles::TilesetArtifactWriter.

Definition at line 707 of file project_tileset_artifact_writer.cpp.

◆ write_porymap_pal_n()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_porymap_pal_n ( const ArtifactKey dest_key,
const Tileset src,
std::size_t  index 
)
overridevirtual

◆ write_porytiles_anim_frame()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_porytiles_anim_frame ( const ArtifactKey dest_key,
const Tileset src,
const std::string &  anim_name,
const std::string &  frame_name 
)
overridevirtual

◆ write_porytiles_anim_params()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_porytiles_anim_params ( const ArtifactKey dest_key,
const Tileset src 
)
overridevirtual

Writes animation parameters to the Porytiles component backing store.

Generates and writes the animation parameters (frame sequences, timing, etc.) for all animations in the Porytiles component.

Parameters
dest_keyKey identifying where to write the parameters
srcThe Tileset object from which to extract animation parameters
Returns
Empty ChainableResult on success, otherwise an error chain

Implements porytiles::TilesetArtifactWriter.

Definition at line 938 of file project_tileset_artifact_writer.cpp.

◆ write_porytiles_pal_n()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_porytiles_pal_n ( const ArtifactKey dest_key,
const Tileset src,
std::size_t  index 
)
overridevirtual

◆ write_tiles_png()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_tiles_png ( const ArtifactKey dest_key,
const Tileset src 
)
overridevirtual

◆ write_top_png()

ChainableResult< void > porytiles::ProjectTilesetArtifactWriter::write_top_png ( const ArtifactKey dest_key,
const Tileset src 
)
overridevirtual

The documentation for this class was generated from the following files: