using SpaceGame.Api.Simulation.Model; namespace SpaceGame.Api.Simulation; public sealed class ScenarioLoader { private readonly WorldBuilder _worldBuilder; public ScenarioLoader(string contentRootPath, WorldGenerationOptions? worldGeneration = null) { var generationOptions = worldGeneration ?? new WorldGenerationOptions(); var dataRoot = Path.GetFullPath(Path.Combine(contentRootPath, "..", "..", "shared", "data")); var dataLoader = new DataCatalogLoader(dataRoot); var generationService = new SystemGenerationService(); var spatialBuilder = new SpatialBuilder(); var seedingService = new WorldSeedingService(); _worldBuilder = new WorldBuilder( generationOptions, dataLoader, generationService, spatialBuilder, seedingService); } public SimulationWorld Load() => _worldBuilder.Build(); }