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
}
