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.

27 lines
836 B

4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 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 wow.doge.mygame.executors.Schedulers.AsyncScheduler
  9. class ActorSystemResource(logger: Logger[Task], scheduler: AsyncScheduler) {
  10. def get: Resource[Task, ActorSystem[SpawnProtocol.Command]] =
  11. Resource.make(
  12. logger.info("Creating Actor System") >> Task(
  13. ActorSystem(
  14. SpawnProtocol(),
  15. name = "GameActorSystem",
  16. BootstrapSetup().withDefaultExecutionContext(scheduler.value)
  17. )
  18. )
  19. )(sys =>
  20. for {
  21. _ <- Task(sys.terminate())
  22. _ <- Task.deferFuture(sys.whenTerminated)
  23. _ <- logger.info("Actor System Terminated")
  24. } yield ()
  25. )
  26. }