package wow.doge.mygame.subsystems.events sealed trait Event final case object BulletFired extends Event // type BulletFired = BulletFired.type final case class EventWithData(data: Int) extends Event sealed trait TickEvent extends Event object TickEvent { final case object RenderTick extends TickEvent final case object PhysicsTick extends TickEvent } sealed trait EntityMovementEvent extends Event object EntityMovementEvent { final case class MovedLeft(name: String, pressed: Boolean) extends EntityMovementEvent final case class MovedUp(name: String, pressed: Boolean) extends EntityMovementEvent final case class MovedRight(name: String, pressed: Boolean) extends EntityMovementEvent final case class MovedDown(name: String, pressed: Boolean) extends EntityMovementEvent }