Porytiles
Loading...
Searching...
No Matches
config_provider.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
22
23namespace porytiles {
24
25// NOTE: DO NOT EDIT THIS FILE DIRECTLY. It is AUTO-GENERATED from config_schema.yaml.
26// To add new config values or make other changes, edit config_schema.yaml and regenerate via:
27//
28// uv run scripts/generate_config.py
29
38 public:
39 virtual ~ConfigProvider() = default;
40
44 [[nodiscard]] virtual std::string name() const = 0;
45
46 // Domain Config
47
48 [[nodiscard]] virtual LayerValue<std::size_t>
49 num_tiles_in_primary(ConfigScopeType type, const std::string &scope) const;
50
51 [[nodiscard]] virtual LayerValue<std::size_t> num_tiles_total(ConfigScopeType type, const std::string &scope) const;
52
53 [[nodiscard]] virtual LayerValue<std::size_t>
54 num_metatiles_in_primary(ConfigScopeType type, const std::string &scope) const;
55
56 [[nodiscard]] virtual LayerValue<std::size_t>
57 num_metatiles_total(ConfigScopeType type, const std::string &scope) const;
58
59 [[nodiscard]] virtual LayerValue<std::size_t>
60 num_palettes_in_primary(ConfigScopeType type, const std::string &scope) const;
61
62 [[nodiscard]] virtual LayerValue<std::size_t>
63 num_palettes_total(ConfigScopeType type, const std::string &scope) const;
64
65 [[nodiscard]] virtual LayerValue<std::size_t>
66 max_map_data_size(ConfigScopeType type, const std::string &scope) const;
67
68 [[nodiscard]] virtual LayerValue<std::size_t>
69 num_tiles_per_metatile(ConfigScopeType type, const std::string &scope) const;
70
71 [[nodiscard]] virtual LayerValue<Rgba32>
72 extrinsic_transparency(ConfigScopeType type, const std::string &scope) const;
73
74 [[nodiscard]] virtual LayerValue<bool>
75 ignore_triple_layer_content(ConfigScopeType type, const std::string &scope) const;
76
77 [[nodiscard]] virtual LayerValue<ArtifactEditMode>
78 tiles_edit_mode(ConfigScopeType type, const std::string &scope) const;
79
80 [[nodiscard]] virtual LayerValue<ArtifactEditMode>
81 palettes_edit_mode(ConfigScopeType type, const std::string &scope) const;
82
83 [[nodiscard]] virtual LayerValue<bool> palette_hints_enabled(ConfigScopeType type, const std::string &scope) const;
84
85 [[nodiscard]] virtual LayerValue<std::vector<PaletteHint>>
86 palette_hints(ConfigScopeType type, const std::string &scope) const;
87
88 [[nodiscard]] virtual LayerValue<PackingStrategyType>
89 packing_strategy(ConfigScopeType type, const std::string &scope) const;
90
91 [[nodiscard]] virtual LayerValue<PackingStrategyParams>
92 packing_strategy_params(ConfigScopeType type, const std::string &scope) const;
93
94 [[nodiscard]] virtual LayerValue<TileSharingPacking>
95 tile_sharing_packing(ConfigScopeType type, const std::string &scope) const;
96
97 [[nodiscard]] virtual LayerValue<TileSharingAlignment>
98 tile_sharing_alignment(ConfigScopeType type, const std::string &scope) const;
99
100 [[nodiscard]] virtual LayerValue<TilesPaletteMode>
101 tiles_palette_mode(ConfigScopeType type, const std::string &scope) const;
102
104 global_anim_palette_resolution_strategy(ConfigScopeType type, const std::string &scope) const;
105
107 global_anim_key_frame_resolution_strategy(ConfigScopeType type, const std::string &scope) const;
108
111
112 [[nodiscard]] virtual LayerValue<FrameLinking>
113 global_frame_linking(ConfigScopeType type, const std::string &scope) const;
114
115 [[nodiscard]] virtual LayerValue<PerAnimOverrides>
116 per_anim_overrides(ConfigScopeType type, const std::string &scope) const;
117
118 [[nodiscard]] virtual LayerValue<bool>
119 cross_tileset_anim_linking(ConfigScopeType type, const std::string &scope) const;
120
121 // App Config
122
123 [[nodiscard]] virtual LayerValue<bool> verify_checksums(ConfigScopeType type, const std::string &scope) const;
124
125 [[nodiscard]] virtual LayerValue<PrimaryPairingMode>
126 primary_pairing_mode(ConfigScopeType type, const std::string &scope) const;
127
128 [[nodiscard]] virtual LayerValue<std::vector<std::string>>
129 primary_pairing_partners(ConfigScopeType type, const std::string &scope) const;
130
131 [[nodiscard]] virtual LayerValue<std::vector<std::string>>
132 diagnostic_warnings_exclude(ConfigScopeType type, const std::string &scope) const;
133
134 [[nodiscard]] virtual LayerValue<std::vector<std::string>>
135 diagnostic_warnings_include(ConfigScopeType type, const std::string &scope) const;
136
137 [[nodiscard]] virtual LayerValue<std::vector<std::string>>
138 diagnostic_remarks_exclude(ConfigScopeType type, const std::string &scope) const;
139
140 [[nodiscard]] virtual LayerValue<std::vector<std::string>>
141 diagnostic_remarks_include(ConfigScopeType type, const std::string &scope) const;
142
143 // Infra Config
144 [[nodiscard]] virtual LayerValue<std::string>
145 tileset_paths_primary_src(ConfigScopeType type, const std::string &scope) const;
146 [[nodiscard]] virtual LayerValue<std::string>
147 tileset_paths_primary_bin(ConfigScopeType type, const std::string &scope) const;
148 [[nodiscard]] virtual LayerValue<std::string>
149 tileset_paths_secondary_src(ConfigScopeType type, const std::string &scope) const;
150 [[nodiscard]] virtual LayerValue<std::string>
151 tileset_paths_secondary_bin(ConfigScopeType type, const std::string &scope) const;
152 [[nodiscard]] virtual LayerValue<std::optional<std::size_t>>
153 metatile_attribute_size(ConfigScopeType type, const std::string &scope) const;
154 [[nodiscard]] virtual LayerValue<std::optional<std::size_t>>
155 metatile_attribute_declaration_size(ConfigScopeType type, const std::string &scope) const;
157 metatile_attribute_fields(ConfigScopeType type, const std::string &scope) const;
159 metatile_attribute_field_overrides(ConfigScopeType type, const std::string &scope) const;
160 [[nodiscard]] virtual LayerValue<RolePinDefinitions>
161 role_pins(ConfigScopeType type, const std::string &scope) const;
162 [[nodiscard]] virtual LayerValue<bool>
163 tileset_animations_wire_anim_code(ConfigScopeType type, const std::string &scope) const;
164};
165
166} // namespace porytiles
An interface which config implementations can use to load config values.
virtual LayerValue< std::vector< PaletteHint > > palette_hints(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< PerAnimOverrides > per_anim_overrides(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< TilesPaletteMode > tiles_palette_mode(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< std::optional< std::size_t > > metatile_attribute_declaration_size(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< ArtifactEditMode > palettes_edit_mode(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< bool > ignore_triple_layer_content(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 > 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< std::size_t > num_palettes_in_primary(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< AnimPaletteResolutionStrategy > global_anim_palette_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< MetatileAttributeFieldDefinitions > metatile_attribute_fields(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::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< MetatileAttributeFieldOverrides > metatile_attribute_field_overrides(ConfigScopeType type, const std::string &scope) const
virtual ~ConfigProvider()=default
virtual LayerValue< std::optional< std::size_t > > metatile_attribute_size(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< bool > palette_hints_enabled(ConfigScopeType type, const std::string &scope) const
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 std::string name() const =0
Gets the name of this ConfigProvider, useful for diagnostic purposes.
virtual LayerValue< RolePinDefinitions > role_pins(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< bool > tileset_animations_wire_anim_code(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< AnimMultiPaletteSubtileResolutionStrategy > global_anim_multi_palette_subtile_resolution_strategy(ConfigScopeType type, const std::string &scope) const
virtual LayerValue< std::size_t > num_palettes_total(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...