package forestry.api.genetics; import java.util.Collection; import forestry.api.core.EnumHumidity; import forestry.api.core.EnumTemperature; public interface IClimateHelper { /** * Determines whether the given temperature and humidity are within the given constraints. * @param temperature The temperature to test. * @param humidity The humidity to test. * @param baseTemp Base temperature for the test. * @param tolTemp Temperature tolerance to apply. * @param baseHumid Base humidity for the test. * @param tolHumid Humidity tolerance to apply. * @return true if both temperature and humidity fit the given constraints. */ boolean isWithinLimits(EnumTemperature temperature, EnumHumidity humidity, EnumTemperature baseTemp, EnumTolerance tolTemp, EnumHumidity baseHumid, EnumTolerance tolHumid); boolean isWithinLimits(EnumTemperature temperature, EnumTemperature baseTemp, EnumTolerance tolTemp); boolean isWithinLimits(EnumHumidity humidity, EnumHumidity baseHumid, EnumTolerance tolHumid); /** * Gets a collection of humidities which fit the given parameters. * @param prefered Base humidity from which to measure. * @param tolerance Tolerance to apply to the base humidity. * @return A collection of humidities which fall within the given parameters. */ Collection<EnumHumidity> getToleratedHumidity(EnumHumidity prefered, EnumTolerance tolerance); /** * Gets a collection of temperatures which fit the given parameters. * @param prefered Base temperature from which to measure. * @param tolerance Tolerance to apply to the base temperatures. * @return A collection of temperatures which fall within the given parameters. */ Collection<EnumTemperature> getToleratedTemperature(EnumTemperature prefered, EnumTolerance tolerance); /** * Gets a localized, human readable string for the given temperature. * @param temperature Temperature to generate the string for. * @return A localized, human readable string for the given temperature. */ String toDisplay(EnumTemperature temperature); /** * Gets a localized, human readable string for the given humidity. * @param humidity Humidity to generate the string for. * @return A localized, human readable string for the given humidity. */ String toDisplay(EnumHumidity humidity); }