Porytiles
Loading...
Searching...
No Matches
porytiles2::YamlFileProvider Class Referencefinal

A ConfigProvider implementation that reads configuration values from multiple YAML files with priority. More...

#include <yaml_file_provider.hpp>

Inheritance diagram for porytiles2::YamlFileProvider:
[legend]
Collaboration diagram for porytiles2::YamlFileProvider:
[legend]

Public Member Functions

 YamlFileProvider (gsl::not_null< TextFormatter * > format, const std::filesystem::path &project_root, const TilesetArtifactKeyProvider &tileset_key_provider)
 Constructs a YamlFileProvider that searches for configuration across multiple YAML files.
 
 YamlFileProvider (const std::filesystem::path &project_root, const TilesetArtifactKeyProvider &tileset_key_provider)
 Constructs a YamlFileProvider with a default PlainTextFormatter.
 
std::string name () const override
 Gets the name of this config layer.
 
LayerValue< std::size_t > num_tiles_primary (const std::string &tileset) const override
 
LayerValue< std::size_t > num_tiles_total (const std::string &tileset) const override
 
LayerValue< std::size_t > num_metatiles_primary (const std::string &tileset) const override
 
LayerValue< std::size_t > num_metatiles_total (const std::string &tileset) const override
 
LayerValue< std::size_t > num_pals_primary (const std::string &tileset) const override
 
LayerValue< std::size_t > num_pals_total (const std::string &tileset) const override
 
LayerValue< std::size_t > max_map_data_size (const std::string &tileset) const override
 
LayerValue< std::size_t > num_tiles_per_metatile (const std::string &tileset) const override
 
LayerValue< Rgba32extrinsic_transparency (const std::string &tileset) const override
 
LayerValue< bool > patch_build_enabled (const std::string &tileset) const override
 
LayerValue< TilesPalModetiles_pal_mode (const std::string &tileset) const override
 
- Public Member Functions inherited from porytiles2::ConfigProvider
virtual ~ConfigProvider ()=default
 

Detailed Description

A ConfigProvider implementation that reads configuration values from multiple YAML files with priority.

YamlFileProvider loads YAML configuration files from multiple locations and provides access to configuration values defined within them. Config files are searched in priority order:

  1. tileset_folder/config.local.yaml (highest priority)
  2. tileset_folder/config.yaml
  3. project_root/config.local.yaml
  4. project_root/config.yaml (lowest priority)

Files are loaded lazily and cached for performance. If no config files exist or a key is not found, methods return LayerValue::not_provided(), allowing graceful fallback to other providers in a layered configuration system.

Definition at line 35 of file yaml_file_provider.hpp.

Constructor & Destructor Documentation

◆ YamlFileProvider() [1/2]

porytiles2::YamlFileProvider::YamlFileProvider ( gsl::not_null< TextFormatter * >  format,
const std::filesystem::path &  project_root,
const TilesetArtifactKeyProvider tileset_key_provider 
)
explicit

Constructs a YamlFileProvider that searches for configuration across multiple YAML files.

This constructor sets up the provider to search for configuration values across multiple config files in priority order. Config files are loaded lazily when first accessed and cached for subsequent lookups.

Parameters
formatA pointer to the TextFormatter to use
project_rootThe root directory of the project
tileset_key_providerProvider for generating tileset artifact keys and paths

Definition at line 27 of file yaml_file_provider.cpp.

◆ YamlFileProvider() [2/2]

porytiles2::YamlFileProvider::YamlFileProvider ( const std::filesystem::path &  project_root,
const TilesetArtifactKeyProvider tileset_key_provider 
)
explicit

Constructs a YamlFileProvider with a default PlainTextFormatter.

This constructor creates an internally owned PlainTextFormatter instance and uses it for formatting. The YamlFileProvider will search for configuration values across multiple config files in priority order. Config files are loaded lazily when first accessed and cached for subsequent lookups.

Parameters
project_rootThe root directory of the project
tileset_key_providerProvider for generating tileset artifact keys and paths

Definition at line 36 of file yaml_file_provider.cpp.

Member Function Documentation

◆ extrinsic_transparency()

LayerValue< Rgba32 > porytiles2::YamlFileProvider::extrinsic_transparency ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 145 of file yaml_file_provider.cpp.

◆ max_map_data_size()

LayerValue< std::size_t > porytiles2::YamlFileProvider::max_map_data_size ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 121 of file yaml_file_provider.cpp.

◆ name()

std::string porytiles2::YamlFileProvider::name ( ) const
overridevirtual

Gets the name of this config layer.

Returns
The name "YamlFileProvider"

Implements porytiles2::ConfigProvider.

Definition at line 44 of file yaml_file_provider.cpp.

◆ num_metatiles_primary()

LayerValue< std::size_t > porytiles2::YamlFileProvider::num_metatiles_primary ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 73 of file yaml_file_provider.cpp.

◆ num_metatiles_total()

LayerValue< std::size_t > porytiles2::YamlFileProvider::num_metatiles_total ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 85 of file yaml_file_provider.cpp.

◆ num_pals_primary()

LayerValue< std::size_t > porytiles2::YamlFileProvider::num_pals_primary ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 97 of file yaml_file_provider.cpp.

◆ num_pals_total()

LayerValue< std::size_t > porytiles2::YamlFileProvider::num_pals_total ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 109 of file yaml_file_provider.cpp.

◆ num_tiles_per_metatile()

LayerValue< std::size_t > porytiles2::YamlFileProvider::num_tiles_per_metatile ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 133 of file yaml_file_provider.cpp.

◆ num_tiles_primary()

LayerValue< std::size_t > porytiles2::YamlFileProvider::num_tiles_primary ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 49 of file yaml_file_provider.cpp.

◆ num_tiles_total()

LayerValue< std::size_t > porytiles2::YamlFileProvider::num_tiles_total ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 61 of file yaml_file_provider.cpp.

◆ patch_build_enabled()

LayerValue< bool > porytiles2::YamlFileProvider::patch_build_enabled ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 157 of file yaml_file_provider.cpp.

◆ tiles_pal_mode()

LayerValue< TilesPalMode > porytiles2::YamlFileProvider::tiles_pal_mode ( const std::string &  tileset) const
overridevirtual

Reimplemented from porytiles2::ConfigProvider.

Definition at line 169 of file yaml_file_provider.cpp.


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