package wow.doge.mygame.subsystems.events

sealed trait PlayerEvent

sealed trait PlayerMovementEvent extends PlayerEvent
final 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
  final case object PlayerJumped extends PlayerMovementEvent
  // final case object PlayerTurnedRight extends PlayerMovementEvent
  // final case object PlayerTurnedLeft extends PlayerMovementEvent
}

sealed trait PlayerCameraEvent extends PlayerEvent

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