Porytiles
Loading...
Searching...
No Matches
config_provider.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
19
20namespace porytiles {
21
22/*
23 * NOTE: DO NOT EDIT THIS FILE DIRECTLY. It is AUTO-GENERATED from config_schema.yaml.
24 * To add new config values or make other changes, edit config_schema.yaml and regenerate via:
25 *
26 * uv run scripts/generate_config.py
27 */
28
39 public:
40 virtual ~ConfigProvider() = default;
41
47 [[nodiscard]] virtual std::string name() const = 0;
48
49 /*
50 * Domain Config
51 */
52
53 [[nodiscard]] virtual LayerValue<std::size_t> num_tiles_in_primary(ConfigScopeType type, const std::string &scope) const;
54
55 [[nodiscard]] virtual LayerValue<std::size_t> num_tiles_total(ConfigScopeType type, const std::string &scope) const;
56
57 [[nodiscard]] virtual LayerValue<std::size_t> num_metatiles_in_primary(ConfigScopeType type, const std::string &scope) const;
58
59 [[nodiscard]] virtual LayerValue<std::size_t> num_metatiles_total(ConfigScopeType type, const std::string &scope) const;
60
61 [[nodiscard]] virtual LayerValue<std::size_t> num_pals_in_primary(ConfigScopeType type, const std::string &scope) const;
62
63 [[nodiscard]] virtual LayerValue<std::size_t> num_pals_total(ConfigScopeType type, const std::string &scope) const;
64
65 [[nodiscard]] virtual LayerValue<std::size_t> max_map_data_size(ConfigScopeType type, const std::string &scope) const;
66
67 [[nodiscard]] virtual LayerValue<std::size_t> num_tiles_per_metatile(ConfigScopeType type, const std::string &scope) const;
68
69 [[nodiscard]] virtual LayerValue<Rgba32> extrinsic_transparency(ConfigScopeType type, const std::string &scope) const;
70
71 [[nodiscard]] virtual LayerValue<ArtifactEditMode> tiles_edit_mode(ConfigScopeType type, const std::string &scope) const;
72
73 [[nodiscard]] virtual LayerValue<ArtifactEditMode> pals_edit_mode(ConfigScopeType type, const std::string &scope) const;
74
75 [[nodiscard]] virtual LayerValue<bool> pal_hints_enabled(ConfigScopeType type, const std::string &scope) const;
76
77 [[nodiscard]] virtual LayerValue<std::vector<PaletteHint>> pal_hints(ConfigScopeType type, const std::string &scope) const;
78
79 [[nodiscard]] virtual LayerValue<PackingStrategyType> packing_strategy(ConfigScopeType type, const std::string &scope) const;
80
81 [[nodiscard]] virtual LayerValue<PackingStrategyParams> packing_strategy_params(ConfigScopeType type, const std::string &scope) const;
82
83 [[nodiscard]] virtual LayerValue<TileSharingPacking> tile_sharing_packing(ConfigScopeType type, const std::string &scope) const;
84
85 [[nodiscard]] virtual LayerValue<TileSharingAlignment> tile_sharing_alignment(ConfigScopeType type, const std::string &scope) const;
86
87 [[nodiscard]] virtual LayerValue<TilesPalMode> tiles_pal_mode(ConfigScopeType type, const std::string &scope) const;
88
89 [[nodiscard]] virtual LayerValue<AnimPalResolutionStrategy> global_anim_pal_resolution_strategy(ConfigScopeType type, const std::string &scope) const;
90
91 [[nodiscard]] virtual LayerValue<AnimKeyFrameResolutionStrategy> global_anim_key_frame_resolution_strategy(ConfigScopeType type, const std::string &scope) const;
92
94
95 [[nodiscard]] virtual LayerValue<FrameLinking> global_frame_linking(ConfigScopeType type, const std::string &scope) const;
96
97 [[nodiscard]] virtual LayerValue<PerAnimOverrides> per_anim_overrides(ConfigScopeType type, const std::string &scope) const;
98
99 [[nodiscard]] virtual LayerValue<bool> cross_tileset_anim_linking(ConfigScopeType type, const std::string &scope) const;
100
101 /*
102 * App Config
103 */
104
105 [[nodiscard]] virtual LayerValue<bool> verify_checksums(ConfigScopeType type, const std::string &scope) const;
106
107 [[nodiscard]] virtual LayerValue<PrimaryPairingMode> primary_pairing_mode(ConfigScopeType type, const std::string &scope) const;
108
109 [[nodiscard]] virtual LayerValue<std::vector<std::string>> primary_pairing_partners(ConfigScopeType type, const std::string &scope) const;
110
111 [[nodiscard]] virtual LayerValue<std::vector<std::string>> diagnostic_warnings_exclude(ConfigScopeType type, const std::string &scope) const;
112
113 [[nodiscard]] virtual LayerValue<std::vector<std::string>> diagnostic_warnings_include(ConfigScopeType type, const std::string &scope) const;
114
115 [[nodiscard]] virtual LayerValue<std::vector<std::string>> diagnostic_remarks_exclude(ConfigScopeType type, const std::string &scope) const;
116
117 [[nodiscard]] virtual LayerValue<std::vector<std::string>> diagnostic_remarks_include(ConfigScopeType type, const std::string &scope) const;
118
119 /*
120 * Infra Config
121 */
122 [[nodiscard]] virtual LayerValue<std::string> tileset_paths_primary_src(ConfigScopeType type, const std::string &scope) const;
123 [[nodiscard]] virtual LayerValue<std::string> tileset_paths_primary_bin(ConfigScopeType type, const std::string &scope) const;
124 [[nodiscard]] virtual LayerValue<std::string> tileset_paths_secondary_src(ConfigScopeType type, const std::string &scope) const;
125 [[nodiscard]] virtual LayerValue<std::string> tileset_paths_secondary_bin(ConfigScopeType type, const std::string &scope) const;
126 [[nodiscard]] virtual LayerValue<std::size_t> metatile_attr_size(ConfigScopeType type, const std::string &scope) const;
127 [[nodiscard]] virtual LayerValue<bool> tileset_animations_wire_anim_code(ConfigScopeType type, const std::string &scope) const;
128};
129
130} // namespace porytiles
An interface which config implementations can use to load config values.
virtual LayerValue< ArtifactEditMode > pals_edit_mode(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< PerAnimOverrides > per_anim_overrides(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::vector< PaletteHint > > pal_hints(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::vector< std::string > > primary_pairing_partners(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< Rgba32 > extrinsic_transparency(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< TileSharingPacking > tile_sharing_packing(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< PackingStrategyParams > packing_strategy_params(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< AnimPalResolutionStrategy > global_anim_pal_resolution_strategy(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::size_t > metatile_attr_size(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< TilesPalMode > tiles_pal_mode(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< ArtifactEditMode > tiles_edit_mode(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::size_t > max_map_data_size(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< bool > pal_hints_enabled(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< bool > verify_checksums(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< FrameLinking > global_frame_linking(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< TileSharingAlignment > tile_sharing_alignment(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::size_t > num_metatiles_in_primary(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< PrimaryPairingMode > primary_pairing_mode(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::string > tileset_paths_secondary_bin(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< PackingStrategyType > packing_strategy(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< AnimKeyFrameResolutionStrategy > global_anim_key_frame_resolution_strategy(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::vector< std::string > > diagnostic_warnings_exclude(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::size_t > num_tiles_total(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::vector< std::string > > diagnostic_remarks_include(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::string > tileset_paths_primary_src(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::vector< std::string > > diagnostic_remarks_exclude(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::string > tileset_paths_secondary_src(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::size_t > num_pals_total(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::string > tileset_paths_primary_bin(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::vector< std::string > > diagnostic_warnings_include(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::size_t > num_pals_in_primary(ConfigScopeType type, const std::string &scope) const
virtual ~ConfigProvider()=default
virtual LayerValue< bool > cross_tileset_anim_linking(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::size_t > num_metatiles_total(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::size_t > num_tiles_per_metatile(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::size_t > num_tiles_in_primary(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< AnimMultiPalSubtileResolutionStrategy > global_anim_multi_pal_subtile_resolution_strategy(ConfigScopeType type, const std::string &scope) const
virtual std::string name() const =0
Gets the name of this ConfigProvider, useful for diagnostic purposes.
virtual LayerValue< bool > tileset_animations_wire_anim_code(ConfigScopeType type, const std::string &scope) const
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...