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.

26 lines
713 B

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. package wow.doge.mygame
  2. import akka.actor.typed.ActorSystem
  3. import akka.actor.typed.SpawnProtocol
  4. import cats.effect.Resource
  5. import io.odin.Logger
  6. import monix.bio.Task
  7. import wow.doge.mygame.executors.ExecutorsModule
  8. trait MainModule extends ExecutorsModule {
  9. def actorSystemResource(
  10. logger: Logger[Task]
  11. ): Resource[Task, ActorSystem[SpawnProtocol.Command]] =
  12. Resource.make(logger.info("Creating Actor System") >> Task {
  13. ActorSystem(
  14. SpawnProtocol(),
  15. name = "GameActorSystem"
  16. )
  17. })(sys =>
  18. for {
  19. _ <- Task(sys.terminate())
  20. _ <- Task.fromFuture(sys.whenTerminated)
  21. _ <- logger.info("Actor System Terminated")
  22. } yield ()
  23. )
  24. }