| 5 | char const* const CacheSelector::Name = "cache"; |
| 6 | |
| 7 | CacheSelector::CacheSelector( |
| 8 | Json const& config, TerrainSelectorParameters const& parameters, TerrainDatabase const* database) |
| 9 | : TerrainSelector(Name, config, parameters) { |
| 10 | auto sourceConfig = config.get("source"); |
| 11 | String sourceType = sourceConfig.getString("type"); |
| 12 | uint64_t seedBias = sourceConfig.getUInt("seedBias", 0); |
| 13 | TerrainSelectorParameters sourceParameters = parameters; |
| 14 | sourceParameters.seed += seedBias; |
| 15 | m_source = database->createSelectorType(type, sourceConfig, sourceParameters); |
| 16 | |
| 17 | m_cache.setMaxSize(config.getUInt("lruCacheSize", 20000)); |
| 18 | } |
| 19 | |
| 20 | float CacheSelector::get(int x, int y) const { |
| 21 | return m_cache.get(Vec2I(x, y), [this](Vec2I const& key) { |
nothing calls this directly
no test coverage detected