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
10
11namespace porytiles {
12
35 public:
49 std::filesystem::path project_root,
50 gsl::not_null<const Schema *> schema,
51 gsl::not_null<const DomainConfig *> config,
52 gsl::not_null<const TextFormatter *> format,
53 gsl::not_null<const UserDiagnostics *> diag,
54 gsl::not_null<const TilePrinter *> tile_printer,
55 gsl::not_null<const PalettePrinter *> palette_printer,
56 gsl::not_null<const ProjectTilesetMetadataProvider *> metadata_provider,
57 gsl::not_null<const PngIndexedImageLoader *> png_loader,
58 gsl::not_null<const FilePaletteLoader *> palette_loader)
59 : project_root_{std::move(project_root)}, schema_{schema}, config_{config}, format_{format}, diag_{diag},
60 tile_printer_{tile_printer}, palette_printer_{palette_printer}, metadata_provider_{metadata_provider},
61 png_loader_{png_loader}, palette_loader_{palette_loader}
62 {
63 }
64
80 import_porymap_component_from_vanilla(const std::string &tileset_name) const override;
81
82 private:
83 std::filesystem::path project_root_;
84 const Schema *schema_;
85 const DomainConfig *config_;
86 const TextFormatter *format_;
87 const UserDiagnostics *diag_;
88 const TilePrinter *tile_printer_;
89 const PalettePrinter *palette_printer_;
90 const ProjectTilesetMetadataProvider *metadata_provider_;
91 const PngIndexedImageLoader *png_loader_;
92 const FilePaletteLoader *palette_loader_;
93};
94
95} // 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, gsl::not_null< const Schema * > schema, 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 * > palette_printer, gsl::not_null< const ProjectTilesetMetadataProvider * > metadata_provider, gsl::not_null< const PngIndexedImageLoader * > png_loader, gsl::not_null< const FilePaletteLoader * > palette_loader)
Constructs a ProjectPrimaryTilesetImporter with required dependencies.
Provides a pokeemerald project filesystem-based implementation for TilesetMetadataProvider.
A validated metatile attribute layout: an ordered set of non-overlapping fields.
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.