forked from nova/jmonkey-test
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
634 B
27 lines
634 B
package wow.doge.mygame
|
|
|
|
import akka.actor.typed.ActorSystem
|
|
import cats.effect.Resource
|
|
import monix.bio.Task
|
|
import io.odin.Logger
|
|
import wow.doge.mygame.game.GameApp
|
|
import wow.doge.mygame.executors.Schedulers
|
|
|
|
trait ActorSystemModule {
|
|
|
|
def logger: Logger[Task]
|
|
def app: GameApp
|
|
def schedulers: Schedulers
|
|
|
|
lazy val actorsResource =
|
|
Resource.make(logger.info("Creating Actor System") >> Task {
|
|
ActorSystem(
|
|
RootActor(app, schedulers, logger = logger),
|
|
name = "GameActorSystem"
|
|
)
|
|
})(sys =>
|
|
logger.info("Shutting down actor system") >> Task(
|
|
sys.terminate()
|
|
)
|
|
)
|
|
}
|