31 std::filesystem::path project_root,
32 std::size_t metatile_attr_size,
33 gsl::not_null<const PngRgbaImageLoader *> png_rgba_loader,
34 gsl::not_null<const PngIndexedImageLoader *> png_indexed_loader,
35 gsl::not_null<const FilePalLoader *> pal_loader,
36 gsl::not_null<const AttributesCsvLoader *> attributes_csv_loader,
37 gsl::not_null<const AnimJsonParser *> anim_json_parser,
38 gsl::not_null<const AnimCodeParser *> anim_code_parser,
39 gsl::not_null<const ProjectTilesetMetadataProvider *> metadata_provider)
40 : project_root_{std::move(project_root)}, metatile_attr_size_{metatile_attr_size},
41 png_rgba_loader_{png_rgba_loader}, png_indexed_loader_{png_indexed_loader}, pal_loader_{pal_loader},
42 attributes_csv_loader_{attributes_csv_loader}, anim_json_parser_{anim_json_parser},
43 anim_code_parser_{anim_code_parser}, metadata_provider_{metadata_provider}
62 const std::string &anim_name,
64 const std::vector<std::pair<std::string, ArtifactKey>> &frame_keys)
const override;
82 const std::string &anim_name,
84 const std::optional<ArtifactKey> &key_frame_key,
85 const std::vector<std::pair<std::string, ArtifactKey>> &frame_keys)
const override;
91 const std::filesystem::path project_root_;
92 const std::size_t metatile_attr_size_;
Parses C code to extract tileset animation parameters using callback chain discovery.
Parses and writes animation configuration JSON files (anim.json).
A type-safe wrapper for artifact keys.
A service that loads metatile attributes from a CSV file.
A result type that maintains a chainable sequence of errors for debugging and error reporting.
A service interface that loads a fixed-length Palette from a given file.
An image loader that reads PNG files to create an Image with an index pixel type.
An image loader that reads PNG files to create an Image with an Rgba32 pixel type.
Provides a filesystem-based implementation for TilesetArtifactReader.
ChainableResult< void > read_metatile_attributes_bin(Tileset &dest, const ArtifactKey &src_key) const override
ChainableResult< void > read_top_png(Tileset &dest, const ArtifactKey &src_key) const override
ChainableResult< void > read_porytiles_pal_n(Tileset &dest, const ArtifactKey &src_key, std::size_t index) const override
ChainableResult< void > read_porymap_pal_n(Tileset &dest, const ArtifactKey &src_key, std::size_t index) const override
ChainableResult< void > read_attributes_csv(Tileset &dest, const ArtifactKey &src_key) const override
ChainableResult< void > read_middle_png(Tileset &dest, const ArtifactKey &src_key) const override
ChainableResult< void > read_porytiles_anim(Tileset &dest, const std::string &anim_name, const ArtifactKey ¶ms_key, const std::optional< ArtifactKey > &key_frame_key, const std::vector< std::pair< std::string, ArtifactKey > > &frame_keys) const override
ChainableResult< void > read_bottom_png(Tileset &dest, const ArtifactKey &src_key) const override
ChainableResult< void > read_porymap_anim(Tileset &dest, const std::string &anim_name, const ArtifactKey ¶ms_key, const std::vector< std::pair< std::string, ArtifactKey > > &frame_keys) const override
ChainableResult< void > read_porytiles_primary_anim_references(Tileset &dest, const ArtifactKey ¶ms_key) const override
ChainableResult< void > read_tiles_png(Tileset &dest, const ArtifactKey &src_key) const override
ProjectTilesetArtifactReader(std::filesystem::path project_root, std::size_t metatile_attr_size, gsl::not_null< const PngRgbaImageLoader * > png_rgba_loader, gsl::not_null< const PngIndexedImageLoader * > png_indexed_loader, gsl::not_null< const FilePalLoader * > pal_loader, gsl::not_null< const AttributesCsvLoader * > attributes_csv_loader, gsl::not_null< const AnimJsonParser * > anim_json_parser, gsl::not_null< const AnimCodeParser * > anim_code_parser, gsl::not_null< const ProjectTilesetMetadataProvider * > metadata_provider)
ChainableResult< void > read_metatiles_bin(Tileset &dest, const ArtifactKey &src_key) const override
Abstract interface for reading tileset artifacts from a backing store into a Tileset object.
A complete tileset containing both Porytiles and Porymap components.