Files
KnockOutWhist-Web/knockoutwhistweb/app/controllers/WebUI.scala
2025-10-22 08:16:22 +02:00

51 lines
1.2 KiB
Scala

package controllers
import controllers.sessions.SimpleSession
import de.knockoutwhist.cards.{Card, CardValue, Hand, Suit}
import de.knockoutwhist.control.GameState.MainMenu
import de.knockoutwhist.events.*
import de.knockoutwhist.events.global.GameStateChangeEvent
import de.knockoutwhist.events.player.PlayerEvent
import de.knockoutwhist.player.AbstractPlayer
import de.knockoutwhist.rounds.Match
import de.knockoutwhist.ui.UI
import de.knockoutwhist.utils.CustomThread
import de.knockoutwhist.utils.events.{EventListener, SimpleEvent}
object WebUI extends CustomThread with EventListener with UI {
setName("WebUI")
var init = false
var latestOutput: String = ""
override def instance: CustomThread = WebUI
override def listen(event: SimpleEvent): Unit = {
runLater {
event match {
case event: PlayerEvent =>
PodGameManager.transmit(event.playerId, event)
case event: GameStateChangeEvent =>
if (event.newState == MainMenu) {
PodGameManager.clearSessions()
}
Some(true)
case _ =>
PodGameManager.transmitAll(event)
}
}
}
override def initial: Boolean = {
if (init) {
return false
}
init = true
start()
true
}
}