Porytiles
Loading...
Searching...
No Matches
lazy_layered_config.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <any>
4#include <functional>
5#include <map>
6#include <memory>
7#include <ostream>
8#include <unordered_map>
9#include <vector>
10
11#include "gsl/pointers"
12
24
25namespace porytiles {
26
27/*
28 * NOTE: DO NOT EDIT THIS FILE DIRECTLY. It is AUTO-GENERATED from config_schema.yaml.
29 * To add new config values or make other changes, edit config_schema.yaml and regenerate via:
30 *
31 * uv run scripts/generate_config.py
32 */
33
45class LazyLayeredConfig final : public DomainConfig, public AppConfig, public InfraConfig {
46 public:
63 gsl::not_null<TextFormatter *> format, std::vector<std::unique_ptr<ConfigProvider>> &&providers)
64 : format_{format}, providers_{std::move(providers)}
65 {
66 }
67
79 explicit LazyLayeredConfig(std::vector<std::unique_ptr<ConfigProvider>> &&providers)
80 : owned_format_{std::make_unique<PlainTextFormatter>()}, format_{owned_format_.get()},
81 providers_{std::move(providers)}
82 {
83 }
84
97 void add_provider(std::unique_ptr<ConfigProvider> provider) override;
98
99 protected:
100 /*
101 * Domain Config Raw Methods (Tier 1)
102 * Note: _validated methods (Tier 2) are inherited from DomainConfig and not overridden
103 */
104
106 num_tiles_in_primary_raw(ConfigScopeType type, const std::string &scope) const override;
107
109 num_tiles_total_raw(ConfigScopeType type, const std::string &scope) const override;
110
112 num_metatiles_in_primary_raw(ConfigScopeType type, const std::string &scope) const override;
113
115 num_metatiles_total_raw(ConfigScopeType type, const std::string &scope) const override;
116
118 num_pals_in_primary_raw(ConfigScopeType type, const std::string &scope) const override;
119
121 num_pals_total_raw(ConfigScopeType type, const std::string &scope) const override;
122
124 max_map_data_size_raw(ConfigScopeType type, const std::string &scope) const override;
125
127 num_tiles_per_metatile_raw(ConfigScopeType type, const std::string &scope) const override;
128
130 extrinsic_transparency_raw(ConfigScopeType type, const std::string &scope) const override;
131
133 tiles_edit_mode_raw(ConfigScopeType type, const std::string &scope) const override;
134
136 pals_edit_mode_raw(ConfigScopeType type, const std::string &scope) const override;
137
139 pal_hints_enabled_raw(ConfigScopeType type, const std::string &scope) const override;
140
142 pal_hints_raw(ConfigScopeType type, const std::string &scope) const override;
143
145 packing_strategy_raw(ConfigScopeType type, const std::string &scope) const override;
146
148 packing_strategy_params_raw(ConfigScopeType type, const std::string &scope) const override;
149
151 tile_sharing_packing_raw(ConfigScopeType type, const std::string &scope) const override;
152
154 tile_sharing_alignment_raw(ConfigScopeType type, const std::string &scope) const override;
155
157 tiles_pal_mode_raw(ConfigScopeType type, const std::string &scope) const override;
158
160 global_anim_pal_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const override;
161
163 global_anim_key_frame_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const override;
164
166 global_anim_multi_pal_subtile_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const override;
167
169 global_frame_linking_raw(ConfigScopeType type, const std::string &scope) const override;
170
172 per_anim_overrides_raw(ConfigScopeType type, const std::string &scope) const override;
173
175 cross_tileset_anim_linking_raw(ConfigScopeType type, const std::string &scope) const override;
176
177 /*
178 * App Config Raw Methods (Tier 1)
179 * Note: _validated methods (Tier 2) are inherited from AppConfig and not overridden
180 */
181
183 verify_checksums_raw(ConfigScopeType type, const std::string &scope) const override;
184
186 primary_pairing_mode_raw(ConfigScopeType type, const std::string &scope) const override;
187
189 primary_pairing_partners_raw(ConfigScopeType type, const std::string &scope) const override;
190
192 diagnostic_warnings_exclude_raw(ConfigScopeType type, const std::string &scope) const override;
193
195 diagnostic_warnings_include_raw(ConfigScopeType type, const std::string &scope) const override;
196
198 diagnostic_remarks_exclude_raw(ConfigScopeType type, const std::string &scope) const override;
199
201 diagnostic_remarks_include_raw(ConfigScopeType type, const std::string &scope) const override;
202
203 /*
204 * Infra Config Raw Methods (Tier 1)
205 * Note: _validated methods (Tier 2) are inherited from InfraConfig and not overridden
206 */
207 [[nodiscard]] ChainableResult<ConfigValue<std::string>> tileset_paths_primary_src_raw(ConfigScopeType type, const std::string &scope) const override;
208 [[nodiscard]] ChainableResult<ConfigValue<std::string>> tileset_paths_primary_bin_raw(ConfigScopeType type, const std::string &scope) const override;
209 [[nodiscard]] ChainableResult<ConfigValue<std::string>> tileset_paths_secondary_src_raw(ConfigScopeType type, const std::string &scope) const override;
210 [[nodiscard]] ChainableResult<ConfigValue<std::string>> tileset_paths_secondary_bin_raw(ConfigScopeType type, const std::string &scope) const override;
211 [[nodiscard]] ChainableResult<ConfigValue<std::size_t>> metatile_attr_size_raw(ConfigScopeType type, const std::string &scope) const override;
212 [[nodiscard]] ChainableResult<ConfigValue<bool>> tileset_animations_wire_anim_code_raw(ConfigScopeType type, const std::string &scope) const override;
213
214 public:
215 /*
216 * Provenance Chain Methods
217 * These methods return the full provenance chain for each config value,
218 * showing what each provider in the chain would return.
219 */
220
233 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
234 num_tiles_in_primary_provenance_chain(ConfigScopeType type, const std::string &scope) const;
235
248 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
249 num_tiles_total_provenance_chain(ConfigScopeType type, const std::string &scope) const;
250
263 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
264 num_metatiles_in_primary_provenance_chain(ConfigScopeType type, const std::string &scope) const;
265
278 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
279 num_metatiles_total_provenance_chain(ConfigScopeType type, const std::string &scope) const;
280
293 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
294 num_pals_in_primary_provenance_chain(ConfigScopeType type, const std::string &scope) const;
295
308 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
309 num_pals_total_provenance_chain(ConfigScopeType type, const std::string &scope) const;
310
323 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
324 max_map_data_size_provenance_chain(ConfigScopeType type, const std::string &scope) const;
325
338 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
339 num_tiles_per_metatile_provenance_chain(ConfigScopeType type, const std::string &scope) const;
340
353 [[nodiscard]] std::vector<ProvenanceChainLink<Rgba32>>
354 extrinsic_transparency_provenance_chain(ConfigScopeType type, const std::string &scope) const;
355
368 [[nodiscard]] std::vector<ProvenanceChainLink<ArtifactEditMode>>
369 tiles_edit_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const;
370
383 [[nodiscard]] std::vector<ProvenanceChainLink<ArtifactEditMode>>
384 pals_edit_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const;
385
398 [[nodiscard]] std::vector<ProvenanceChainLink<bool>>
399 pal_hints_enabled_provenance_chain(ConfigScopeType type, const std::string &scope) const;
400
413 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<PaletteHint>>>
414 pal_hints_provenance_chain(ConfigScopeType type, const std::string &scope) const;
415
428 [[nodiscard]] std::vector<ProvenanceChainLink<PackingStrategyType>>
429 packing_strategy_provenance_chain(ConfigScopeType type, const std::string &scope) const;
430
443 [[nodiscard]] std::vector<ProvenanceChainLink<PackingStrategyParams>>
444 packing_strategy_params_provenance_chain(ConfigScopeType type, const std::string &scope) const;
445
458 [[nodiscard]] std::vector<ProvenanceChainLink<TileSharingPacking>>
459 tile_sharing_packing_provenance_chain(ConfigScopeType type, const std::string &scope) const;
460
473 [[nodiscard]] std::vector<ProvenanceChainLink<TileSharingAlignment>>
474 tile_sharing_alignment_provenance_chain(ConfigScopeType type, const std::string &scope) const;
475
488 [[nodiscard]] std::vector<ProvenanceChainLink<TilesPalMode>>
489 tiles_pal_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const;
490
503 [[nodiscard]] std::vector<ProvenanceChainLink<AnimPalResolutionStrategy>>
504 global_anim_pal_resolution_strategy_provenance_chain(ConfigScopeType type, const std::string &scope) const;
505
518 [[nodiscard]] std::vector<ProvenanceChainLink<AnimKeyFrameResolutionStrategy>>
520
533 [[nodiscard]] std::vector<ProvenanceChainLink<AnimMultiPalSubtileResolutionStrategy>>
535
548 [[nodiscard]] std::vector<ProvenanceChainLink<FrameLinking>>
549 global_frame_linking_provenance_chain(ConfigScopeType type, const std::string &scope) const;
550
563 [[nodiscard]] std::vector<ProvenanceChainLink<PerAnimOverrides>>
564 per_anim_overrides_provenance_chain(ConfigScopeType type, const std::string &scope) const;
565
578 [[nodiscard]] std::vector<ProvenanceChainLink<bool>>
579 cross_tileset_anim_linking_provenance_chain(ConfigScopeType type, const std::string &scope) const;
580
593 [[nodiscard]] std::vector<ProvenanceChainLink<bool>>
594 verify_checksums_provenance_chain(ConfigScopeType type, const std::string &scope) const;
595
608 [[nodiscard]] std::vector<ProvenanceChainLink<PrimaryPairingMode>>
609 primary_pairing_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const;
610
623 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<std::string>>>
624 primary_pairing_partners_provenance_chain(ConfigScopeType type, const std::string &scope) const;
625
638 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<std::string>>>
639 diagnostic_warnings_exclude_provenance_chain(ConfigScopeType type, const std::string &scope) const;
640
653 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<std::string>>>
654 diagnostic_warnings_include_provenance_chain(ConfigScopeType type, const std::string &scope) const;
655
668 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<std::string>>>
669 diagnostic_remarks_exclude_provenance_chain(ConfigScopeType type, const std::string &scope) const;
670
683 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<std::string>>>
684 diagnostic_remarks_include_provenance_chain(ConfigScopeType type, const std::string &scope) const;
685
698 [[nodiscard]] std::vector<ProvenanceChainLink<std::string>>
699 tileset_paths_primary_src_provenance_chain(ConfigScopeType type, const std::string &scope) const;
700
713 [[nodiscard]] std::vector<ProvenanceChainLink<std::string>>
714 tileset_paths_primary_bin_provenance_chain(ConfigScopeType type, const std::string &scope) const;
715
728 [[nodiscard]] std::vector<ProvenanceChainLink<std::string>>
729 tileset_paths_secondary_src_provenance_chain(ConfigScopeType type, const std::string &scope) const;
730
743 [[nodiscard]] std::vector<ProvenanceChainLink<std::string>>
744 tileset_paths_secondary_bin_provenance_chain(ConfigScopeType type, const std::string &scope) const;
745
758 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
759 metatile_attr_size_provenance_chain(ConfigScopeType type, const std::string &scope) const;
760
773 [[nodiscard]] std::vector<ProvenanceChainLink<bool>>
774 tileset_animations_wire_anim_code_provenance_chain(ConfigScopeType type, const std::string &scope) const;
775
788 void dump_config(std::ostream &out, ConfigScopeType type, const std::string &scope) const;
789
790 private:
791 std::unique_ptr<TextFormatter> owned_format_; // Optional owned formatter (when using default ctor)
792 TextFormatter *format_; // Non-owning pointer to formatter
793 // Providers in priority order (highest first)
794 std::vector<std::unique_ptr<ConfigProvider>> providers_;
795
796 // Config value cache
797 mutable std::map<std::string, std::any> cache_;
798 // Config value as string for debug printing
799 mutable std::unordered_map<std::string, std::string> cache_value_strings_;
800
801 // Source key cache (stores the provider-specific identifier for each config value)
802 mutable std::unordered_map<std::string, std::string> source_key_;
803
804 // Config source and source_details
805 mutable std::unordered_map<std::string, std::string> source_;
806 mutable std::unordered_map<std::string, std::vector<std::string>> source_details_;
807
817 template <typename T>
818 ChainableResult<ConfigValue<T>> resolve_config_value(
819 const std::string &cache_key,
820 const std::string &canonical_name,
821 std::function<LayerValue<T>(const ConfigProvider &)> provider_call) const;
822
835 template <typename T>
836 std::vector<ProvenanceChainLink<T>>
837 collect_provenance_chain(std::function<LayerValue<T>(const ConfigProvider &)> provider_call) const;
838};
839
840} // namespace porytiles
Interface that defines a complete app layer configuration.
A result type that maintains a chainable sequence of errors for debugging and error reporting.
An interface which config implementations can use to load config values.
Interface that defines a complete domain layer configuration.
Interface that defines a complete infra layer configuration.
A Config implementation that lazily pulls a config value by consulting multiple priority-ordered back...
ChainableResult< ConfigValue< std::vector< std::string > > > diagnostic_warnings_exclude_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< std::string > > tileset_paths_primary_src_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for tileset_paths_primary_src.
std::vector< ProvenanceChainLink< bool > > pal_hints_enabled_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for pal_hints_enabled.
std::vector< ProvenanceChainLink< bool > > tileset_animations_wire_anim_code_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for tileset_animations_wire_anim_code.
ChainableResult< ConfigValue< ArtifactEditMode > > pals_edit_mode_raw(ConfigScopeType type, const std::string &scope) const override
LazyLayeredConfig(std::vector< std::unique_ptr< ConfigProvider > > &&providers)
Constructs a LazyLayeredConfig with a default PlainTextFormatter.
ChainableResult< ConfigValue< std::string > > tileset_paths_primary_bin_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< bool > > verify_checksums_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for verify_checksums.
std::vector< ProvenanceChainLink< FrameLinking > > global_frame_linking_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for global_frame_linking.
std::vector< ProvenanceChainLink< std::vector< std::string > > > diagnostic_remarks_exclude_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for diagnostic_remarks_exclude.
ChainableResult< ConfigValue< std::size_t > > num_metatiles_total_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< std::vector< std::string > > > primary_pairing_partners_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for primary_pairing_partners.
std::vector< ProvenanceChainLink< std::size_t > > max_map_data_size_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for max_map_data_size.
ChainableResult< ConfigValue< AnimMultiPalSubtileResolutionStrategy > > global_anim_multi_pal_subtile_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< FrameLinking > > global_frame_linking_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::size_t > > num_tiles_total_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::size_t > > num_pals_in_primary_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::vector< PaletteHint > > > pal_hints_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::size_t > > num_pals_total_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::string > > tileset_paths_secondary_bin_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< TileSharingPacking > > tile_sharing_packing_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for tile_sharing_packing.
ChainableResult< ConfigValue< PerAnimOverrides > > per_anim_overrides_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< PackingStrategyParams > > packing_strategy_params_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< Rgba32 > > extrinsic_transparency_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::vector< std::string > > > diagnostic_remarks_include_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< std::vector< std::string > > > diagnostic_warnings_exclude_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for diagnostic_warnings_exclude.
ChainableResult< ConfigValue< bool > > cross_tileset_anim_linking_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< Rgba32 > > extrinsic_transparency_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for extrinsic_transparency.
std::vector< ProvenanceChainLink< std::size_t > > num_metatiles_in_primary_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for num_metatiles_in_primary.
ChainableResult< ConfigValue< std::size_t > > num_metatiles_in_primary_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< AnimMultiPalSubtileResolutionStrategy > > global_anim_multi_pal_subtile_resolution_strategy_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for global_anim_multi_pal_subtile_resolution_strategy.
std::vector< ProvenanceChainLink< std::size_t > > num_tiles_in_primary_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for num_tiles_in_primary.
std::vector< ProvenanceChainLink< std::vector< std::string > > > diagnostic_warnings_include_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for diagnostic_warnings_include.
std::vector< ProvenanceChainLink< std::string > > tileset_paths_secondary_src_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for tileset_paths_secondary_src.
ChainableResult< ConfigValue< std::size_t > > num_tiles_in_primary_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::size_t > > num_tiles_per_metatile_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< bool > > pal_hints_enabled_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::vector< std::string > > > diagnostic_remarks_exclude_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< PackingStrategyType > > packing_strategy_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< TilesPalMode > > tiles_pal_mode_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< std::size_t > > num_tiles_per_metatile_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for num_tiles_per_metatile.
std::vector< ProvenanceChainLink< PerAnimOverrides > > per_anim_overrides_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for per_anim_overrides.
std::vector< ProvenanceChainLink< ArtifactEditMode > > tiles_edit_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for tiles_edit_mode.
std::vector< ProvenanceChainLink< AnimKeyFrameResolutionStrategy > > global_anim_key_frame_resolution_strategy_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for global_anim_key_frame_resolution_strategy.
std::vector< ProvenanceChainLink< std::size_t > > num_pals_total_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for num_pals_total.
ChainableResult< ConfigValue< bool > > verify_checksums_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< bool > > cross_tileset_anim_linking_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for cross_tileset_anim_linking.
std::vector< ProvenanceChainLink< std::size_t > > num_metatiles_total_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for num_metatiles_total.
std::vector< ProvenanceChainLink< AnimPalResolutionStrategy > > global_anim_pal_resolution_strategy_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for global_anim_pal_resolution_strategy.
std::vector< ProvenanceChainLink< std::vector< std::string > > > diagnostic_remarks_include_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for diagnostic_remarks_include.
std::vector< ProvenanceChainLink< TileSharingAlignment > > tile_sharing_alignment_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for tile_sharing_alignment.
ChainableResult< ConfigValue< TileSharingPacking > > tile_sharing_packing_raw(ConfigScopeType type, const std::string &scope) const override
LazyLayeredConfig(gsl::not_null< TextFormatter * > format, std::vector< std::unique_ptr< ConfigProvider > > &&providers)
Constructs a LazyLayeredConfig with a list of ConfigProviders in priority order, highest to lowest.
ChainableResult< ConfigValue< PrimaryPairingMode > > primary_pairing_mode_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< bool > > tileset_animations_wire_anim_code_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::size_t > > metatile_attr_size_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< PrimaryPairingMode > > primary_pairing_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for primary_pairing_mode.
ChainableResult< ConfigValue< AnimPalResolutionStrategy > > global_anim_pal_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< std::string > > tileset_paths_secondary_bin_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for tileset_paths_secondary_bin.
std::vector< ProvenanceChainLink< std::vector< PaletteHint > > > pal_hints_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for pal_hints.
std::vector< ProvenanceChainLink< std::size_t > > num_tiles_total_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for num_tiles_total.
ChainableResult< ConfigValue< std::string > > tileset_paths_primary_src_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< std::size_t > > num_pals_in_primary_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for num_pals_in_primary.
ChainableResult< ConfigValue< std::vector< std::string > > > diagnostic_warnings_include_raw(ConfigScopeType type, const std::string &scope) const override
void dump_config(std::ostream &out, ConfigScopeType type, const std::string &scope) const
Dumps the full provenance chain for all config values to an output stream.
void add_provider(std::unique_ptr< ConfigProvider > provider) override
Prepends a ConfigProvider to the provider chain at highest priority and invalidates resolution caches...
ChainableResult< ConfigValue< std::vector< std::string > > > primary_pairing_partners_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< TileSharingAlignment > > tile_sharing_alignment_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::size_t > > max_map_data_size_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< std::size_t > > metatile_attr_size_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for metatile_attr_size.
std::vector< ProvenanceChainLink< std::string > > tileset_paths_primary_bin_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for tileset_paths_primary_bin.
std::vector< ProvenanceChainLink< ArtifactEditMode > > pals_edit_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for pals_edit_mode.
std::vector< ProvenanceChainLink< PackingStrategyType > > packing_strategy_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for packing_strategy.
ChainableResult< ConfigValue< std::string > > tileset_paths_secondary_src_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< AnimKeyFrameResolutionStrategy > > global_anim_key_frame_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< PackingStrategyParams > > packing_strategy_params_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for packing_strategy_params.
std::vector< ProvenanceChainLink< TilesPalMode > > tiles_pal_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for tiles_pal_mode.
ChainableResult< ConfigValue< ArtifactEditMode > > tiles_edit_mode_raw(ConfigScopeType type, const std::string &scope) const override
TextFormatter implementation that strips all styling from text.
Abstract base class for applying text styling with context-aware formatting.
ConfigScopeType
Specifies the scope type for configuration value lookups.
A small container that holds an optional-wrapped value, validation state, and metadata about the valu...