public int GetBiomeID(SOBiomeDefinition def)
 {
     if (biomeIds.TryGetValue(def, out var id))
     {
         return(id);
     }
     throw new ArgumentException($"No id has been generated for biome definition {def.name}");
 }
 public float GetMaxElevationFraction(SOBiomeDefinition def)
 {
     try
     {
         var zonesContainingDef = config.elevationLowToHigh.Where(
             (_) => _.moistureLevelsLowToHigh.Any(
                 (moistDef) => moistDef.biomeDefinition.Equals(def)
                 )
             );
         return(zonesContainingDef.Select((zone) => zone.max).Max());
     }
     catch (Exception e)
     {
         throw new ArgumentException($"A max elevation value could not be found for biome {def.name}", e);
     }
 }