public StaticObstaclesGenerator(IChestGenerator chestGenerator, IInteriorObjectRandomSource interiorObjectRandomSource, IStaticObjectFactoryCollector staticObjectfactoryCollector, IStaticObjectsGeneratorRandomSource staticObjectsGeneratorRandomSource) { _chestGenerator = chestGenerator ?? throw new ArgumentNullException(nameof(chestGenerator)); _interiorObjectRandomSource = interiorObjectRandomSource ?? throw new ArgumentNullException(nameof(interiorObjectRandomSource)); _staticObjectfactoryCollector = staticObjectfactoryCollector ?? throw new ArgumentNullException(nameof(staticObjectfactoryCollector)); _staticObjectsGeneratorRandomSource = staticObjectsGeneratorRandomSource ?? throw new ArgumentNullException(nameof(staticObjectsGeneratorRandomSource)); }
/// <summary> /// Создаёт экземпляр <see cref="SectorGenerator"/>. /// </summary> /// <param name="mapFactorySelector"> Сервис для выбора фабрики для создания карты. </param> /// <param name="sectorFactory"> Фабрика сектора. </param> /// <param name="monsterGenerator"> Генератор монстров для подземелий. </param> /// <param name="chestGenerator"> Генератор сундуков для подземеоий </param> /// <param name="citizenGenerator"> Генератор жителей в городском квартале. </param> /// <param name="botPlayer"> Игрок, управляющий монстрами, мирными жителями. </param> public SectorGenerator( IMapFactorySelector mapFactorySelector, ISectorFactory sectorFactory, IMonsterGenerator monsterGenerator, IChestGenerator chestGenerator, ICitizenGenerator citizenGenerator , IBotPlayer botPlayer) { _mapFactorySelector = mapFactorySelector; _sectorFactory = sectorFactory; _monsterGenerator = monsterGenerator; _chestGenerator = chestGenerator; _botPlayer = botPlayer; _citizenGenerator = citizenGenerator; }
/// <summary> /// Создаёт экземпляр <see cref="SectorGenerator"/>. /// </summary> /// <param name="mapFactory"> Фабрика карты. Сейчас используется <see cref="RoomStyle.RoomMapFactory"/>. </param> /// <param name="sectorFactory"> Фабрика сектора. </param> /// <param name="monsterGenerator"> Генератор монстров для подземелий. </param> /// <param name="chestGenerator"> Генератор сундуков для подземеоий </param> /// <param name="monsterPlayer"> Игрок, управляющий монстрами. </param> /// <param name="schemeService"> Сервис схем. </param> /// <param name="traderManager"> Менеджер торговцев. Нужен для сектора. </param> /// <param name="dropResolver"> Служба работы с таблицами дропа. Нужна для создания торговцев. </param> public SectorGenerator( IMapFactory mapFactory, ISectorFactory sectorFactory, IMonsterGenerator monsterGenerator, IChestGenerator chestGenerator, IBotPlayer monsterPlayer, ISchemeService schemeService, ITraderManager traderManager,//TODO Вынести в отдельный генератор IDropResolver dropResolver ) { _mapFactory = mapFactory; _sectorFactory = sectorFactory; _monsterGenerator = monsterGenerator; _chestGenerator = chestGenerator; _monsterPlayer = monsterPlayer; _schemeService = schemeService; _traderManager = traderManager; _dropResolver = dropResolver; }