Porytiles
Loading...
Searching...
No Matches
tileset_compiler.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4
5#include "gsl/pointers"
6
14
15namespace porytiles {
16
29 public:
31 gsl::not_null<const DomainConfig *> config,
32 gsl::not_null<const TextFormatter *> format,
33 gsl::not_null<const UserDiagnostics *> diag,
34 gsl::not_null<const TilePrinter *> tile_printer,
35 gsl::not_null<const PalettePrinter *> pal_printer)
36 : config_{config}, format_{format}, diag_{diag}, tile_printer_{tile_printer}, pal_printer_{pal_printer}
37 {
38 }
39
49 compile(const Tileset &tileset, bool is_secondary = false, const Tileset *paired_primary = nullptr) const;
50
51 private:
52 const DomainConfig *config_;
53 const TextFormatter *format_;
54 const UserDiagnostics *diag_;
55 const TilePrinter *tile_printer_;
56 const PalettePrinter *pal_printer_;
57};
58
59} // 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 collection of printer functions for the Palette and related types.
Abstract base class for applying text styling with context-aware formatting.
A collection of printer functions for various tile types.
Service that compiles a Tileset (primary or secondary).
TilesetCompiler(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)
ChainableResult< std::unique_ptr< Tileset > > compile(const Tileset &tileset, bool is_secondary=false, const Tileset *paired_primary=nullptr) const
Compiles the given Tileset, producing a new Tileset with compiled Porymap assets.
A complete tileset containing both Porytiles and Porymap components.
Definition tileset.hpp:14
Abstract class for structured error reporting and diagnostic output.
@ tileset
Configuration scoped to a specific tileset.