♻️ Move output generation to state
[rhynodge.git] / src / main / kotlin / net / pterodactylus / rhynodge / webpages / weather / WeatherTrigger.kt
1 package net.pterodactylus.rhynodge.webpages.weather
2
3 import net.pterodactylus.rhynodge.State
4 import net.pterodactylus.rhynodge.Trigger
5
6 /**
7  * Detects changes in the weather and creates email texts.
8  *
9  * @author [David ‘Bombe’ Roden](mailto:bombe@pterodactylus.net)
10  */
11 class WeatherTrigger : Trigger {
12
13         private lateinit var state: WeatherState
14         private var changed = false
15
16         override fun mergeStates(previousState: State, currentState: State): State {
17                 changed = previousState != currentState
18                 state = currentState as WeatherState
19                 return currentState
20         }
21
22         override fun triggers() = changed
23
24 }