package Ġcom . ch adm arch and . forge of history . engine Ċ Ċ import Ġcom . ch adm arch and . forge of history . clock . Clock Controller Ċ import Ġcom . ch adm arch and . forge of history . save . Save Game Service Ċ import Ġcom . ch adm arch and . forge of history . world . N ation Ċ import Ġcom . ch adm arch and . forge of history . world . N ation Service Ċ import Ġcom . ch adm arch and . k ut na . common . types . DEFAULT _ ID Ċ import Ġcom . ch adm arch and . k ut na . common . types . Id Ċ import Ġmu . Kotlin Logging Ċ import Ġorg . k oin . core . component . K oin Component Ċ import Ġorg . k oin . core . component . inject Ċ Ċ private Ġval Ġlog Ġ= ĠKotlin Logging . logger Ġ{} Ċ Ċ class ĠEngine Service Ġ: ĠK oin Component Ġ{ ĊĠĠĠ Ġprivate Ġval Ġclock Controller : ĠClock Controller Ġby Ġinject () ĊĠĠĠ Ġprivate Ġval Ġn ation Service : ĠN ation Service Ġby Ġinject () ĊĠĠĠ Ġprivate Ġval Ġsave Game Service : ĠSave Game Service Ġby Ġinject () ĊĠĠĠ Ġprivate Ġvar Ġloop Count Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġexecute Game Loop () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . debug (" Executing Ġgame Ġloop ") ĊĠĠĠĠĠĠĠ Ġclock Controller . advance Game Time () ĊĊĠĠĠĠĠĠĠ Ġ// ĠTest Ġthat Ġthe Ġworld Ġmodule Ġis Ġworking ĊĠĠĠĠĠĠĠ Ġlog . debug (" Number Ġof Ġn ations : Ġ${ n ation Service . getAll () }") ĊĠĠĠĠĠĠĠ Ġif Ġ( n ation Service . getAll (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn ation Service . add ( N ation ( Id . DEFAULT _ ID , Ġ" Can ada ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlog . debug (" Number Ġof Ġn ations : Ġ${ n ation Service . getAll () }") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( loop Count Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Game Service . save Game () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( loop Count Ġ== Ġ 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Game Service . load Game () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġloop Count Ġ+= Ġ 1 ĊĠĠĠ Ġ} Ċ } Ċ