Cozy Wather + buld systeme
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
// Distant Lands 2025
|
||||
// COZY: Stylized Weather 3
|
||||
// All code included in this file is protected under the Unity Asset Store Eula
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
|
||||
namespace DistantLands.Cozy.Data
|
||||
{
|
||||
|
||||
[System.Serializable]
|
||||
[CreateAssetMenu(menuName = "Distant Lands/Cozy/Climate Profile", order = 361)]
|
||||
public class ClimateProfile : CozyProfile
|
||||
{
|
||||
|
||||
|
||||
[Tooltip("The global temperature during the year. the x-axis is the current day over the days in the year and the y axis is the temperature in Fahrenheit.")]
|
||||
public AnimationCurve temperatureOverYear;
|
||||
[Tooltip("The global humidity during the year. the x-axis is the current day over the days in the year and the y axis is the humidity.")]
|
||||
public AnimationCurve humidityOverYear;
|
||||
[Tooltip("The local temperature during the day. the x-axis is the current ticks over 360 and the y axis is the temperature change in Fahrenheit from the global temperature.")]
|
||||
public AnimationCurve temperatureOverDay;
|
||||
[Tooltip("The local humidity during the day. the x-axis is the current ticks over 360 and the y axis is the humidity change from the global precipitation.")]
|
||||
public AnimationCurve humidityOverDay;
|
||||
|
||||
[Tooltip("Adds an offset to the global temperature. Useful for adding biomes or climate change by location or elevation")]
|
||||
public float temperatureFilter;
|
||||
[Tooltip("Adds an offset to the global precipitation. Useful for adding biomes or climate change by location or elevation")]
|
||||
public float humidityFilter;
|
||||
|
||||
public float GetTemperature()
|
||||
{
|
||||
|
||||
CozyWeather weather = CozyWeather.instance;
|
||||
|
||||
float i = (temperatureOverYear.Evaluate(weather.yearPercentage) * temperatureOverDay.Evaluate(weather.modifiedDayPercentage)) + temperatureFilter;
|
||||
|
||||
return i;
|
||||
}
|
||||
public float GetTemperature(CozyWeather weather)
|
||||
{
|
||||
if (weather == null)
|
||||
return GetTemperature();
|
||||
|
||||
float i = (temperatureOverYear.Evaluate(weather.yearPercentage) * temperatureOverDay.Evaluate(weather.modifiedDayPercentage)) + temperatureFilter;
|
||||
|
||||
|
||||
return i;
|
||||
}
|
||||
public float GetTemperature(CozyWeather weather, float time)
|
||||
{
|
||||
|
||||
if (!weather.timeModule)
|
||||
return GetTemperature(weather);
|
||||
|
||||
float i = (temperatureOverYear.Evaluate(time / weather.timeModule.DaysPerYear) * temperatureOverDay.Evaluate(time % 1)) + temperatureFilter;
|
||||
|
||||
return i;
|
||||
}
|
||||
public float GetHumidity()
|
||||
{
|
||||
CozyWeather weather = CozyWeather.instance;
|
||||
float i = (humidityOverYear.Evaluate(weather.yearPercentage) * humidityOverDay.Evaluate(weather.modifiedDayPercentage)) + humidityFilter;
|
||||
|
||||
return i;
|
||||
}
|
||||
public float GetHumidity(CozyWeather weather)
|
||||
{
|
||||
if (weather == null)
|
||||
weather = CozyWeather.instance;
|
||||
|
||||
float i = (humidityOverYear.Evaluate(weather.yearPercentage) * humidityOverDay.Evaluate(weather.modifiedDayPercentage)) + humidityFilter;
|
||||
|
||||
return i;
|
||||
}
|
||||
public float GetHumidity(CozyWeather weather, float time)
|
||||
{
|
||||
if (!weather.timeModule)
|
||||
return GetHumidity(weather);
|
||||
|
||||
float i = (humidityOverYear.Evaluate(time / weather.timeModule.DaysPerYear) * humidityOverDay.Evaluate(time % 1)) + humidityFilter;
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user