/// <summary> /// Создаёт экземпляр <see cref="SectorGenerator"/>. /// </summary> /// <param name="mapFactorySelector"> Сервис для выбора фабрики для создания карты. </param> /// <param name="sectorFactory"> Фабрика сектора. </param> /// <param name="monsterGenerator"> Генератор монстров для подземелий. </param> /// <param name="chestGenerator"> Генератор сундуков для подземеоий </param> /// <param name="botPlayer"> Игрок, управляющий монстрами, мирными жителями. </param> public SectorGenerator( IMapFactorySelector mapFactorySelector, ISectorFactory sectorFactory, IMonsterGenerator monsterGenerator, IStaticObstaclesGenerator staticObstaclesGenerator, IDiseaseGenerator diseaseGenerator, IBotPlayer botPlayer, IResourceMaterializationMap resourceMaterializationMap) { _mapFactorySelector = mapFactorySelector ?? throw new ArgumentNullException(nameof(mapFactorySelector)); _sectorFactory = sectorFactory ?? throw new ArgumentNullException(nameof(sectorFactory)); _monsterGenerator = monsterGenerator ?? throw new ArgumentNullException(nameof(monsterGenerator)); _staticObstaclesGenerator = staticObstaclesGenerator ?? throw new ArgumentNullException(nameof(staticObstaclesGenerator)); _diseaseGenerator = diseaseGenerator ?? throw new ArgumentNullException(nameof(diseaseGenerator)); _botPlayer = botPlayer ?? throw new ArgumentNullException(nameof(botPlayer)); _resourceMaterializationMap = resourceMaterializationMap ?? throw new ArgumentNullException(nameof(resourceMaterializationMap)); }