Testing out JmonkeyEngine to make a game in Scala with Akka Actors within a pure FP layer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
2.0 KiB

  1. package wow.doge.mygame.game.nodes
  2. import akka.actor.typed.ActorRef
  3. import akka.actor.typed.scaladsl.Behaviors
  4. import wow.doge.mygame.subsystems.movement.ImMovementActor
  5. import org.slf4j.event.Level
  6. import akka.actor.typed.LogOptions
  7. import wow.doge.mygame.subsystems.events.MovementEvent.PlayerMovementEvent
  8. import com.typesafe.scalalogging.Logger
  9. object PlayerMovementEventHandler {
  10. import PlayerMovementEvent._
  11. def apply(movementActor: ActorRef[ImMovementActor.Command]) =
  12. Behaviors.logMessages(
  13. LogOptions()
  14. .withLevel(Level.TRACE)
  15. .withLogger(
  16. Logger[PlayerMovementEventHandler.type].underlying
  17. ),
  18. Behaviors.setup[PlayerMovementEvent](ctx =>
  19. Behaviors.receiveMessage {
  20. case PlayerMovedLeft(pressed) =>
  21. movementActor ! ImMovementActor.MovedLeft(pressed)
  22. Behaviors.same
  23. case PlayerMovedRight(pressed) =>
  24. movementActor ! ImMovementActor.MovedRight(pressed)
  25. Behaviors.same
  26. case PlayerMovedForward(pressed) =>
  27. movementActor ! ImMovementActor.MovedUp(pressed)
  28. Behaviors.same
  29. case PlayerMovedBackward(pressed) =>
  30. movementActor ! ImMovementActor.MovedDown(pressed)
  31. Behaviors.same
  32. case PlayerJumped =>
  33. movementActor ! ImMovementActor.Jump
  34. Behaviors.same
  35. case PlayerRotatedRight =>
  36. // ctx.log.warn("right rotate not implemented yet")
  37. movementActor ! ImMovementActor.RotateRight
  38. Behaviors.same
  39. case PlayerRotatedLeft =>
  40. // ctx.log.warn("left rotate not implemented yet")
  41. movementActor ! ImMovementActor.RotateLeft
  42. Behaviors.same
  43. case PlayerCameraUp =>
  44. ctx.log.warn("camera up not implemented yet")
  45. Behaviors.same
  46. case PlayerCameraDown =>
  47. ctx.log.warn("camera down not implemented yet")
  48. Behaviors.same
  49. }
  50. )
  51. )
  52. }