package wow.doge.mygame.subsystems.events

sealed trait PlayerEvent

sealed trait PlayerMovementEvent extends PlayerEvent
object PlayerMovementEvent {
  final case class PlayerMovedLeft(pressed: Boolean) extends PlayerMovementEvent
  final case class PlayerMovedRight(pressed: Boolean)
      extends PlayerMovementEvent
  final case class PlayerMovedForward(pressed: Boolean)
      extends PlayerMovementEvent
  final case class PlayerMovedBackward(pressed: Boolean)
      extends PlayerMovementEvent
  case object PlayerJumped extends PlayerMovementEvent
  // case object PlayerTurnedRight extends PlayerMovementEvent
  // case object PlayerTurnedLeft extends PlayerMovementEvent
}

sealed trait PlayerCameraEvent extends PlayerEvent

object PlayerCameraEvent {
  case object CameraLeft extends PlayerCameraEvent
  case object CameraRight extends PlayerCameraEvent
  case object CameraMovedUp extends PlayerCameraEvent
  case object CameraMovedDown extends PlayerCameraEvent
}
