41 lines
1.7 KiB
GLSL
41 lines
1.7 KiB
GLSL
#if SEASONS == 1
|
|
#if SEASON_LENGTH >= 24000
|
|
int seasonLength = SEASON_LENGTH;
|
|
#else
|
|
int seasonLength = SEASON_LENGTH * 24000;
|
|
#endif
|
|
|
|
float YearLoop = (worldDay * 24000 + worldTime + SEASON_START * seasonLength) % (seasonLength * 4);
|
|
|
|
float summer = max(0.0, (1.0 + SEASON_TRANSITION_START) * (clamp(YearLoop - seasonLength * 0, 0, seasonLength) / seasonLength) - SEASON_TRANSITION_START);
|
|
float autumn = max(0.0, (1.0 + SEASON_TRANSITION_START * 2.5) * (clamp(YearLoop - seasonLength * 1, 0, seasonLength) / seasonLength) - SEASON_TRANSITION_START * 2.5); // 2.5 to make snow appear sooner
|
|
float winter = max(0.0, (1.0 + SEASON_TRANSITION_START) * (clamp(YearLoop - seasonLength * 2, 0, seasonLength) / seasonLength) - SEASON_TRANSITION_START);
|
|
float spring = max(0.0, (1.0 + SEASON_TRANSITION_START) * (clamp(YearLoop - seasonLength * 3, 0, seasonLength) / seasonLength) - SEASON_TRANSITION_START);
|
|
|
|
float summerTime = spring - summer + 1.0;
|
|
float autumnTime = summer - autumn;
|
|
float winterTime = autumn - winter;
|
|
float springTime = winter - spring;
|
|
|
|
#elif SEASONS == 2
|
|
float summerTime = 1.0;
|
|
float autumnTime = 0.0;
|
|
float winterTime = 0.0;
|
|
float springTime = 0.0;
|
|
#elif SEASONS == 3
|
|
float summerTime = 0.0;
|
|
float autumnTime = 1.0;
|
|
float winterTime = 0.0;
|
|
float springTime = 0.0;
|
|
#elif SEASONS == 4
|
|
float summerTime = 0.0;
|
|
float autumnTime = 0.0;
|
|
float winterTime = 1.0;
|
|
float springTime = 0.0;
|
|
#elif SEASONS == 5
|
|
float summerTime = 0.0;
|
|
float autumnTime = 0.0;
|
|
float winterTime = 0.0;
|
|
float springTime = 1.0;
|
|
#endif
|