package wow.doge.mygame import akka.actor.typed.ActorSystem import akka.actor.typed.SpawnProtocol import cats.effect.Resource import io.odin.Logger import monix.bio.Task import wow.doge.mygame.executors.ExecutorsModule import wow.doge.mygame.game.GameModule trait MainModule extends GameModule with ExecutorsModule { def actorSystemResource2( logger: Logger[Task] ): Resource[Task, ActorSystem[SpawnProtocol.Command]] = Resource.make(logger.info("Creating Actor System") >> Task { ActorSystem( SpawnProtocol(), name = "GameActorSystem" ) })(sys => logger.info("Shutting down actor system") >> Task( sys.terminate() ) ) }