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// NOTE: DO NOT EDIT THIS FILE DIRECTLY. It is AUTO-GENERATED from config_schema.yaml.
28// To add new config values or make other changes, edit config_schema.yaml and regenerate via:
29//
30// uv run scripts/generate_config.py
31
41class LazyLayeredConfig final : public DomainConfig, public AppConfig, public InfraConfig {
42 public:
57 gsl::not_null<TextFormatter *> format, std::vector<std::unique_ptr<ConfigProvider>> &&providers)
58 : format_{format}, providers_{std::move(providers)}
59 {
60 }
61
71 explicit LazyLayeredConfig(std::vector<std::unique_ptr<ConfigProvider>> &&providers)
72 : owned_format_{std::make_unique<PlainTextFormatter>()}, format_{owned_format_.get()},
73 providers_{std::move(providers)}
74 {
75 }
76
87 void add_provider(std::unique_ptr<ConfigProvider> provider) override;
88
89 protected:
90 // Domain Config Raw Methods (Tier 1)
91 // Note: _validated methods (Tier 2) are inherited from DomainConfig and not overridden
92
94 num_tiles_in_primary_raw(ConfigScopeType type, const std::string &scope) const override;
95
97 num_tiles_total_raw(ConfigScopeType type, const std::string &scope) const override;
98
100 num_metatiles_in_primary_raw(ConfigScopeType type, const std::string &scope) const override;
101
103 num_metatiles_total_raw(ConfigScopeType type, const std::string &scope) const override;
104
106 num_palettes_in_primary_raw(ConfigScopeType type, const std::string &scope) const override;
107
109 num_palettes_total_raw(ConfigScopeType type, const std::string &scope) const override;
110
112 max_map_data_size_raw(ConfigScopeType type, const std::string &scope) const override;
113
115 num_tiles_per_metatile_raw(ConfigScopeType type, const std::string &scope) const override;
116
118 extrinsic_transparency_raw(ConfigScopeType type, const std::string &scope) const override;
119
121 ignore_triple_layer_content_raw(ConfigScopeType type, const std::string &scope) const override;
122
124 tiles_edit_mode_raw(ConfigScopeType type, const std::string &scope) const override;
125
127 palettes_edit_mode_raw(ConfigScopeType type, const std::string &scope) const override;
128
130 palette_hints_enabled_raw(ConfigScopeType type, const std::string &scope) const override;
131
133 palette_hints_raw(ConfigScopeType type, const std::string &scope) const override;
134
136 packing_strategy_raw(ConfigScopeType type, const std::string &scope) const override;
137
139 packing_strategy_params_raw(ConfigScopeType type, const std::string &scope) const override;
140
142 tile_sharing_packing_raw(ConfigScopeType type, const std::string &scope) const override;
143
145 tile_sharing_alignment_raw(ConfigScopeType type, const std::string &scope) const override;
146
148 tiles_palette_mode_raw(ConfigScopeType type, const std::string &scope) const override;
149
151 global_anim_palette_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const override;
152
154 global_anim_key_frame_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const override;
155
158 ConfigScopeType type, const std::string &scope) const override;
159
161 global_frame_linking_raw(ConfigScopeType type, const std::string &scope) const override;
162
164 per_anim_overrides_raw(ConfigScopeType type, const std::string &scope) const override;
165
167 cross_tileset_anim_linking_raw(ConfigScopeType type, const std::string &scope) const override;
168
169 // App Config Raw Methods (Tier 1)
170 // Note: _validated methods (Tier 2) are inherited from AppConfig and not overridden
171
173 verify_checksums_raw(ConfigScopeType type, const std::string &scope) const override;
174
176 primary_pairing_mode_raw(ConfigScopeType type, const std::string &scope) const override;
177
179 primary_pairing_partners_raw(ConfigScopeType type, const std::string &scope) const override;
180
182 diagnostic_warnings_exclude_raw(ConfigScopeType type, const std::string &scope) const override;
183
185 diagnostic_warnings_include_raw(ConfigScopeType type, const std::string &scope) const override;
186
188 diagnostic_remarks_exclude_raw(ConfigScopeType type, const std::string &scope) const override;
189
191 diagnostic_remarks_include_raw(ConfigScopeType type, const std::string &scope) const override;
192
193 // Infra Config Raw Methods (Tier 1)
194 // Note: _validated methods (Tier 2) are inherited from InfraConfig and not overridden
196 tileset_paths_primary_src_raw(ConfigScopeType type, const std::string &scope) const override;
198 tileset_paths_primary_bin_raw(ConfigScopeType type, const std::string &scope) const override;
200 tileset_paths_secondary_src_raw(ConfigScopeType type, const std::string &scope) const override;
202 tileset_paths_secondary_bin_raw(ConfigScopeType type, const std::string &scope) const override;
204 metatile_attribute_size_raw(ConfigScopeType type, const std::string &scope) const override;
206 metatile_attribute_declaration_size_raw(ConfigScopeType type, const std::string &scope) const override;
208 metatile_attribute_fields_raw(ConfigScopeType type, const std::string &scope) const override;
210 metatile_attribute_field_overrides_raw(ConfigScopeType type, const std::string &scope) const override;
212 role_pins_raw(ConfigScopeType type, const std::string &scope) const override;
214 tileset_animations_wire_anim_code_raw(ConfigScopeType type, const std::string &scope) const override;
215
216 public:
217 // Provenance Chain Methods
218 // These methods return the full provenance chain for each config value,
219 // showing what each provider in the chain would return.
220
231 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
232 num_tiles_in_primary_provenance_chain(ConfigScopeType type, const std::string &scope) const;
233
244 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
245 num_tiles_total_provenance_chain(ConfigScopeType type, const std::string &scope) const;
246
257 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
258 num_metatiles_in_primary_provenance_chain(ConfigScopeType type, const std::string &scope) const;
259
270 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
271 num_metatiles_total_provenance_chain(ConfigScopeType type, const std::string &scope) const;
272
283 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
284 num_palettes_in_primary_provenance_chain(ConfigScopeType type, const std::string &scope) const;
285
296 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
297 num_palettes_total_provenance_chain(ConfigScopeType type, const std::string &scope) const;
298
309 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
310 max_map_data_size_provenance_chain(ConfigScopeType type, const std::string &scope) const;
311
322 [[nodiscard]] std::vector<ProvenanceChainLink<std::size_t>>
323 num_tiles_per_metatile_provenance_chain(ConfigScopeType type, const std::string &scope) const;
324
335 [[nodiscard]] std::vector<ProvenanceChainLink<Rgba32>>
336 extrinsic_transparency_provenance_chain(ConfigScopeType type, const std::string &scope) const;
337
348 [[nodiscard]] std::vector<ProvenanceChainLink<bool>>
349 ignore_triple_layer_content_provenance_chain(ConfigScopeType type, const std::string &scope) const;
350
361 [[nodiscard]] std::vector<ProvenanceChainLink<ArtifactEditMode>>
362 tiles_edit_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const;
363
374 [[nodiscard]] std::vector<ProvenanceChainLink<ArtifactEditMode>>
375 palettes_edit_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const;
376
387 [[nodiscard]] std::vector<ProvenanceChainLink<bool>>
388 palette_hints_enabled_provenance_chain(ConfigScopeType type, const std::string &scope) const;
389
400 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<PaletteHint>>>
401 palette_hints_provenance_chain(ConfigScopeType type, const std::string &scope) const;
402
413 [[nodiscard]] std::vector<ProvenanceChainLink<PackingStrategyType>>
414 packing_strategy_provenance_chain(ConfigScopeType type, const std::string &scope) const;
415
426 [[nodiscard]] std::vector<ProvenanceChainLink<PackingStrategyParams>>
427 packing_strategy_params_provenance_chain(ConfigScopeType type, const std::string &scope) const;
428
439 [[nodiscard]] std::vector<ProvenanceChainLink<TileSharingPacking>>
440 tile_sharing_packing_provenance_chain(ConfigScopeType type, const std::string &scope) const;
441
452 [[nodiscard]] std::vector<ProvenanceChainLink<TileSharingAlignment>>
453 tile_sharing_alignment_provenance_chain(ConfigScopeType type, const std::string &scope) const;
454
465 [[nodiscard]] std::vector<ProvenanceChainLink<TilesPaletteMode>>
466 tiles_palette_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const;
467
478 [[nodiscard]] std::vector<ProvenanceChainLink<AnimPaletteResolutionStrategy>>
480
491 [[nodiscard]] std::vector<ProvenanceChainLink<AnimKeyFrameResolutionStrategy>>
493
504 [[nodiscard]] std::vector<ProvenanceChainLink<AnimMultiPaletteSubtileResolutionStrategy>>
506 ConfigScopeType type, const std::string &scope) const;
507
518 [[nodiscard]] std::vector<ProvenanceChainLink<FrameLinking>>
519 global_frame_linking_provenance_chain(ConfigScopeType type, const std::string &scope) const;
520
531 [[nodiscard]] std::vector<ProvenanceChainLink<PerAnimOverrides>>
532 per_anim_overrides_provenance_chain(ConfigScopeType type, const std::string &scope) const;
533
544 [[nodiscard]] std::vector<ProvenanceChainLink<bool>>
545 cross_tileset_anim_linking_provenance_chain(ConfigScopeType type, const std::string &scope) const;
546
557 [[nodiscard]] std::vector<ProvenanceChainLink<bool>>
558 verify_checksums_provenance_chain(ConfigScopeType type, const std::string &scope) const;
559
570 [[nodiscard]] std::vector<ProvenanceChainLink<PrimaryPairingMode>>
571 primary_pairing_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const;
572
583 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<std::string>>>
584 primary_pairing_partners_provenance_chain(ConfigScopeType type, const std::string &scope) const;
585
596 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<std::string>>>
597 diagnostic_warnings_exclude_provenance_chain(ConfigScopeType type, const std::string &scope) const;
598
609 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<std::string>>>
610 diagnostic_warnings_include_provenance_chain(ConfigScopeType type, const std::string &scope) const;
611
622 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<std::string>>>
623 diagnostic_remarks_exclude_provenance_chain(ConfigScopeType type, const std::string &scope) const;
624
635 [[nodiscard]] std::vector<ProvenanceChainLink<std::vector<std::string>>>
636 diagnostic_remarks_include_provenance_chain(ConfigScopeType type, const std::string &scope) const;
637
648 [[nodiscard]] std::vector<ProvenanceChainLink<std::string>>
649 tileset_paths_primary_src_provenance_chain(ConfigScopeType type, const std::string &scope) const;
650
661 [[nodiscard]] std::vector<ProvenanceChainLink<std::string>>
662 tileset_paths_primary_bin_provenance_chain(ConfigScopeType type, const std::string &scope) const;
663
674 [[nodiscard]] std::vector<ProvenanceChainLink<std::string>>
675 tileset_paths_secondary_src_provenance_chain(ConfigScopeType type, const std::string &scope) const;
676
687 [[nodiscard]] std::vector<ProvenanceChainLink<std::string>>
688 tileset_paths_secondary_bin_provenance_chain(ConfigScopeType type, const std::string &scope) const;
689
700 [[nodiscard]] std::vector<ProvenanceChainLink<std::optional<std::size_t>>>
701 metatile_attribute_size_provenance_chain(ConfigScopeType type, const std::string &scope) const;
702
713 [[nodiscard]] std::vector<ProvenanceChainLink<std::optional<std::size_t>>>
714 metatile_attribute_declaration_size_provenance_chain(ConfigScopeType type, const std::string &scope) const;
715
726 [[nodiscard]] std::vector<ProvenanceChainLink<MetatileAttributeFieldDefinitions>>
727 metatile_attribute_fields_provenance_chain(ConfigScopeType type, const std::string &scope) const;
728
739 [[nodiscard]] std::vector<ProvenanceChainLink<MetatileAttributeFieldOverrides>>
740 metatile_attribute_field_overrides_provenance_chain(ConfigScopeType type, const std::string &scope) const;
741
752 [[nodiscard]] std::vector<ProvenanceChainLink<RolePinDefinitions>>
753 role_pins_provenance_chain(ConfigScopeType type, const std::string &scope) const;
754
765 [[nodiscard]] std::vector<ProvenanceChainLink<bool>>
766 tileset_animations_wire_anim_code_provenance_chain(ConfigScopeType type, const std::string &scope) const;
767
778 void dump_config(std::ostream &out, ConfigScopeType type, const std::string &scope) const;
779
780 private:
781 std::unique_ptr<TextFormatter> owned_format_; // Optional owned formatter (when using default ctor)
782 TextFormatter *format_; // Non-owning pointer to formatter
783 // Providers in priority order (highest first)
784 std::vector<std::unique_ptr<ConfigProvider>> providers_;
785
786 // Config value cache
787 mutable std::map<std::string, std::any> cache_;
788 // Config value as string for debug printing
789 mutable std::unordered_map<std::string, std::string> cache_value_strings_;
790
791 // Source key cache (stores the provider-specific identifier for each config value)
792 mutable std::unordered_map<std::string, std::string> source_key_;
793
794 // Config source and source_details
795 mutable std::unordered_map<std::string, std::string> source_;
796 mutable std::unordered_map<std::string, std::vector<std::string>> source_details_;
797
805 template <typename T>
806 ChainableResult<ConfigValue<T>> resolve_config_value(
807 const std::string &cache_key,
808 const std::string &canonical_name,
809 std::function<LayerValue<T>(const ConfigProvider &)> provider_call) const;
810
821 template <typename T>
822 std::vector<ProvenanceChainLink<T>>
823 collect_provenance_chain(std::function<LayerValue<T>(const ConfigProvider &)> provider_call) const;
824};
825
826} // 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< RolePinDefinitions > > role_pins_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for role_pins.
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 > > 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< std::size_t > > num_palettes_total_raw(ConfigScopeType type, const std::string &scope) const override
LazyLayeredConfig(std::vector< std::unique_ptr< ConfigProvider > > &&providers)
Constructs a LazyLayeredConfig with a default PlainTextFormatter.
std::vector< ProvenanceChainLink< AnimPaletteResolutionStrategy > > global_anim_palette_resolution_strategy_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for global_anim_palette_resolution_strategy.
ChainableResult< ConfigValue< std::vector< PaletteHint > > > palette_hints_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::string > > tileset_paths_primary_bin_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< AnimMultiPaletteSubtileResolutionStrategy > > global_anim_multi_palette_subtile_resolution_strategy_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.
ChainableResult< ConfigValue< AnimPaletteResolutionStrategy > > global_anim_palette_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const override
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.
std::vector< ProvenanceChainLink< AnimMultiPaletteSubtileResolutionStrategy > > global_anim_multi_palette_subtile_resolution_strategy_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for global_anim_multi_palette_subtile_resolution_strategy.
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.
ChainableResult< ConfigValue< ArtifactEditMode > > palettes_edit_mode_raw(ConfigScopeType type, const std::string &scope) const override
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< 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
std::vector< ProvenanceChainLink< std::size_t > > num_palettes_in_primary_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for num_palettes_in_primary.
ChainableResult< ConfigValue< MetatileAttributeFieldOverrides > > metatile_attribute_field_overrides_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
std::vector< ProvenanceChainLink< std::size_t > > num_palettes_total_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for num_palettes_total.
ChainableResult< ConfigValue< std::vector< std::string > > > diagnostic_remarks_include_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::optional< std::size_t > > > metatile_attribute_size_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< std::optional< std::size_t > > > metatile_attribute_declaration_size_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.
std::vector< ProvenanceChainLink< TilesPaletteMode > > tiles_palette_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for tiles_palette_mode.
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< 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< bool > > palette_hints_enabled_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for palette_hints_enabled.
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.
ChainableResult< ConfigValue< bool > > palette_hints_enabled_raw(ConfigScopeType type, const std::string &scope) const override
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< std::vector< std::string > > > diagnostic_remarks_exclude_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< bool > > ignore_triple_layer_content_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< PackingStrategyType > > packing_strategy_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::optional< std::size_t > > > metatile_attribute_declaration_size_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for metatile_attribute_declaration_size.
ChainableResult< ConfigValue< MetatileAttributeFieldDefinitions > > metatile_attribute_fields_raw(ConfigScopeType type, const std::string &scope) const override
std::vector< ProvenanceChainLink< ArtifactEditMode > > palettes_edit_mode_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for palettes_edit_mode.
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::vector< PaletteHint > > > palette_hints_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for palette_hints.
std::vector< ProvenanceChainLink< std::optional< std::size_t > > > metatile_attribute_size_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for metatile_attribute_size.
std::vector< ProvenanceChainLink< bool > > ignore_triple_layer_content_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for ignore_triple_layer_content.
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< 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.
ChainableResult< ConfigValue< TilesPaletteMode > > tiles_palette_mode_raw(ConfigScopeType type, const std::string &scope) const override
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< std::size_t > > num_palettes_in_primary_raw(ConfigScopeType type, const std::string &scope) const override
ChainableResult< ConfigValue< RolePinDefinitions > > role_pins_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
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.
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::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
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...
std::vector< ProvenanceChainLink< MetatileAttributeFieldOverrides > > metatile_attribute_field_overrides_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for metatile_attribute_field_overrides.
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::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< 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< MetatileAttributeFieldDefinitions > > metatile_attribute_fields_provenance_chain(ConfigScopeType type, const std::string &scope) const
Gets the full provenance chain for metatile_attribute_fields.
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.
std::optional< ProviderDefinition > provider
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...