diff --git a/game/ambientLighting.go b/game/ambientLighting.go index 9fb15cd..0b7bc87 100644 --- a/game/ambientLighting.go +++ b/game/ambientLighting.go @@ -100,11 +100,13 @@ func getSunsetTime(dayOfYear int) (start float64, end float64) { t := float64(DaysPerMonth * MonthsPerYear) d := float64(HoursPerDay) + offsetDay := math.Mod(float64(dayOfYear)+(float64(SolsticeMonthsOffset)/MonthsPerYear)*t, t) + a := -d / (0.5 * t * t) b := d / (0.5 * t) c := 0.5 * d - time := a*float64(dayOfYear*dayOfYear) + b*float64(dayOfYear) + c + time := a*float64(offsetDay*offsetDay) + b*float64(offsetDay) + c return time - transitionTime/2, time + transitionTime/2 } @@ -123,10 +125,12 @@ func getSunriseTime(dayOfYear int) (start float64, end float64) { t := float64(DaysPerMonth * MonthsPerYear) d := float64(HoursPerDay) + offsetDay := math.Mod(float64(dayOfYear)+(float64(SolsticeMonthsOffset)/MonthsPerYear)*t, t) + a := d / (0.5 * t * t) b := -d / (0.5 * t) c := 0.5 * d - time := a*float64(dayOfYear*dayOfYear) + b*float64(dayOfYear) + c + time := a*float64(offsetDay*offsetDay) + b*float64(offsetDay) + c return time - transitionTime/2, time + transitionTime/2 } diff --git a/game/time.go b/game/time.go index 242dba1..a288a8b 100644 --- a/game/time.go +++ b/game/time.go @@ -42,6 +42,8 @@ const ( HoursPerDay = 20 DaysPerMonth = 10 MonthsPerYear = 8 + + SolsticeMonthsOffset = 1 ) type Season int