Porytiles
Loading...
Searching...
No Matches
yaml_file_provider.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <filesystem>
4#include <memory>
5#include <string>
6
7#include "gsl/pointers"
8
12
13namespace porytiles2 {
14
15/*
16 * NOTE: DO NOT EDIT THIS FILE DIRECTLY. It is AUTO-GENERATED from config_schema.yaml.
17 * To add new config values or make other changes, edit config_schema.yaml and regenerate using
18 * Scripts/generate_config.py.
19 */
20
35class YamlFileProvider final : public ConfigProvider {
36 public:
48 explicit YamlFileProvider(
49 gsl::not_null<TextFormatter *> format,
50 const std::filesystem::path &project_root,
51 const TilesetArtifactKeyProvider &tileset_key_provider);
52
64 explicit YamlFileProvider(
65 const std::filesystem::path &project_root, const TilesetArtifactKeyProvider &tileset_key_provider);
66
72 [[nodiscard]] std::string name() const override;
73
74 [[nodiscard]] LayerValue<std::size_t> num_tiles_primary(const std::string &tileset) const override;
75
76 [[nodiscard]] LayerValue<std::size_t> num_tiles_total(const std::string &tileset) const override;
77
78 [[nodiscard]] LayerValue<std::size_t> num_metatiles_primary(const std::string &tileset) const override;
79
80 [[nodiscard]] LayerValue<std::size_t> num_metatiles_total(const std::string &tileset) const override;
81
82 [[nodiscard]] LayerValue<std::size_t> num_pals_primary(const std::string &tileset) const override;
83
84 [[nodiscard]] LayerValue<std::size_t> num_pals_total(const std::string &tileset) const override;
85
86 [[nodiscard]] LayerValue<std::size_t> max_map_data_size(const std::string &tileset) const override;
87
88 [[nodiscard]] LayerValue<std::size_t> num_tiles_per_metatile(const std::string &tileset) const override;
89
90 [[nodiscard]] LayerValue<Rgba32> extrinsic_transparency(const std::string &tileset) const override;
91
92 [[nodiscard]] LayerValue<bool> patch_build_enabled(const std::string &tileset) const override;
93
94 [[nodiscard]] LayerValue<TilesPalMode> tiles_pal_mode(const std::string &tileset) const override;
95
96 private:
97 std::unique_ptr<TextFormatter> owned_format_; // Optional owned formatter (when using default ctor)
98 TextFormatter *format_; // Non-owning pointer to formatter
99 std::filesystem::path project_root_;
100 const TilesetArtifactKeyProvider *tileset_key_provider_;
101 // const LayoutArtifactKeyProvider *layout_key_provider_;
102};
103
104} // namespace porytiles2
An interface which config implementations can use to load config values.
Abstract base class for applying text styling with context-aware formatting.
Abstract interface for generating keys and discovering tileset artifacts in a backing store.
A ConfigProvider implementation that reads configuration values from multiple YAML files with priorit...
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 > max_map_data_size(const std::string &tileset) const override
LayerValue< std::size_t > num_tiles_total(const std::string &tileset) const override
LayerValue< TilesPalMode > tiles_pal_mode(const std::string &tileset) const override
LayerValue< bool > patch_build_enabled(const std::string &tileset) const override
LayerValue< std::size_t > num_tiles_primary(const std::string &tileset) const override
LayerValue< std::size_t > num_pals_total(const std::string &tileset) const override
std::string name() const override
Gets the name of this config layer.
LayerValue< std::size_t > num_pals_primary(const std::string &tileset) const override
LayerValue< std::size_t > num_tiles_per_metatile(const std::string &tileset) const override
LayerValue< Rgba32 > extrinsic_transparency(const std::string &tileset) const override
A small container that holds an optional-wrapped value, validation state, and metadata about the valu...