@@ -23,12 +23,13 @@ internal sealed class PetroglyphStarWarsGameEngineService(IServiceProvider servi
2323 private readonly ILogger ? _logger = serviceProvider . GetService < ILoggerFactory > ( )
2424 ? . CreateLogger ( typeof ( PetroglyphStarWarsGameEngineService ) ) ;
2525
26- public async Task < IStarWarsGameEngine > InitializeAsync (
26+ public async Task < IStarWarsGameEngineHandle > InitializeAsync (
2727 GameEngineType engineType ,
2828 GameLocations gameLocations ,
2929 IGameEngineErrorReporter ? errorReporter = null ,
3030 IGameEngineInitializationReporter ? initReporter = null ,
3131 bool cancelOnInitializationError = false ,
32+ Action < PetroglyphFileSystem > ? configureFileSystem = null ,
3233 CancellationToken cancellationToken = default )
3334
3435 {
@@ -39,7 +40,7 @@ public async Task<IStarWarsGameEngine> InitializeAsync(
3940
4041 try
4142 {
42- return await InitializeEngineAsync ( engineType , gameLocations , errorListenerWrapper , initReporter , cts . Token )
43+ return await InitializeEngineAsync ( engineType , gameLocations , errorListenerWrapper , initReporter , configureFileSystem , cts . Token )
4344 . ConfigureAwait ( false ) ;
4445 }
4546 finally
@@ -57,11 +58,12 @@ void OnInitializationError(object sender, InitializationError e)
5758 }
5859 }
5960
60- private async Task < IStarWarsGameEngine > InitializeEngineAsync (
61+ private async Task < IStarWarsGameEngineHandle > InitializeEngineAsync (
6162 GameEngineType engineType ,
6263 GameLocations gameLocations ,
6364 GameEngineErrorReporterWrapper errorReporter ,
6465 IGameEngineInitializationReporter ? initReporter ,
66+ Action < PetroglyphFileSystem > ? configureFileSystem ,
6567 CancellationToken token )
6668 {
6769 try
@@ -71,6 +73,7 @@ private async Task<IStarWarsGameEngine> InitializeEngineAsync(
7173
7274 var repoFactory = _serviceProvider . GetRequiredService < IGameRepositoryFactory > ( ) ;
7375 var repository = repoFactory . Create ( engineType , gameLocations , errorReporter ) ;
76+ configureFileSystem ? . Invoke ( repository . PGFileSystem ) ;
7477
7578 var pgRender = new PGRender ( repository , errorReporter , serviceProvider ) ;
7679
0 commit comments