Porytiles
Loading...
Searching...
No Matches
project_primary_tileset_importer.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <filesystem>
4
5#include <cstddef>
6
11
12namespace porytiles {
13
38 public:
54 std::filesystem::path project_root,
55 std::size_t metatile_attr_size,
56 gsl::not_null<const DomainConfig *> config,
57 gsl::not_null<const TextFormatter *> format,
58 gsl::not_null<const UserDiagnostics *> diag,
59 gsl::not_null<const TilePrinter *> tile_printer,
60 gsl::not_null<const PalettePrinter *> pal_printer,
61 gsl::not_null<const ProjectTilesetMetadataProvider *> metadata_provider,
62 gsl::not_null<const PngIndexedImageLoader *> png_loader,
63 gsl::not_null<const FilePalLoader *> pal_loader)
64 : project_root_{std::move(project_root)}, metatile_attr_size_{metatile_attr_size}, config_{config},
65 format_{format}, diag_{diag}, tile_printer_{tile_printer}, pal_printer_{pal_printer},
66 metadata_provider_{metadata_provider}, png_loader_{png_loader}, pal_loader_{pal_loader}
67 {
68 }
69
87 import_porymap_component_from_vanilla(const std::string &tileset_name) const override;
88
89 private:
90 std::filesystem::path project_root_;
91 const std::size_t metatile_attr_size_;
92 const DomainConfig *config_;
93 const TextFormatter *format_;
94 const UserDiagnostics *diag_;
95 const TilePrinter *tile_printer_;
96 const PalettePrinter *pal_printer_;
97 const ProjectTilesetMetadataProvider *metadata_provider_;
98 const PngIndexedImageLoader *png_loader_;
99 const FilePalLoader *pal_loader_;
100};
101
102} // namespace porytiles
A result type that maintains a chainable sequence of errors for debugging and error reporting.
Interface that defines a complete domain layer configuration.
A service interface that loads a fixed-length Palette from a given file.
A collection of printer functions for the Palette and related types.
An image loader that reads PNG files to create an Image with an index pixel type.
Domain service interface for importing vanilla (non-Porytiles-managed) tilesets into a PorymapTileset...
Infra-layer implementation of PrimaryTilesetImporter for pokeemerald project structure.
ChainableResult< std::unique_ptr< PorymapTilesetComponent > > import_porymap_component_from_vanilla(const std::string &tileset_name) const override
Reads vanilla Porymap artifacts from a pokeemerald project into a PorymapTilesetComponent.
ProjectPrimaryTilesetImporter(std::filesystem::path project_root, std::size_t metatile_attr_size, gsl::not_null< const DomainConfig * > config, gsl::not_null< const TextFormatter * > format, gsl::not_null< const UserDiagnostics * > diag, gsl::not_null< const TilePrinter * > tile_printer, gsl::not_null< const PalettePrinter * > pal_printer, gsl::not_null< const ProjectTilesetMetadataProvider * > metadata_provider, gsl::not_null< const PngIndexedImageLoader * > png_loader, gsl::not_null< const FilePalLoader * > pal_loader)
Constructs a ProjectPrimaryTilesetImporter with required dependencies.
Provides a pokeemerald project filesystem-based implementation for TilesetMetadataProvider.
Abstract base class for applying text styling with context-aware formatting.
A collection of printer functions for various tile types.
Abstract class for structured error reporting and diagnostic output.