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.

32 lines
896 B

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