import uk.co.nickthecoder.glok.property.boilerplate.booleanProperty
import uk.co.nickthecoder.kyd.Actor
import uk.co.nickthecoder.kyd.Behaviour
import uk.co.nickthecoder.kyd.appearance.Label
class FuelStatus : Behaviour {
val fueledProperty by booleanProperty(false)
var fueled by fueledProperty
override fun onEnteredStage(actor: Actor) {
PlayDirector.instance.registerFuelStatus(this)
updateText(actor)
fueledProperty.addListener { updateText(actor) }
}
private fun updateText(actor: Actor) {
(actor.appearance as? Label)?.let { label ->
label.text = if (fueled) "Ready to Take Off" else "No Fuel"
}
}
}