public Grass2IntensityMapGenerator(
     HabitatToGrassIntensityMapGenerator habitatToGrassIntensityMapGenerator,
     HabitatTexturesGenerator habitatTexturesGenerator,
     Grass2IntensityMapGeneratorConfiguration configuration, PathProximityTextureDbProxy pathProximityTextureDb)
 {
     _habitatToGrassIntensityMapGenerator = habitatToGrassIntensityMapGenerator;
     _habitatTexturesGenerator            = habitatTexturesGenerator;
     _configuration          = configuration;
     _pathProximityTextureDb = pathProximityTextureDb;
 }
        private RoadEngravingTerrainFeatureApplier CreateRoadEngravingFeatureApplier()
        {
            PathProximityTextureDbProxy pathProximityDb =
                _gameInitializationFields.Retrive <PathProximityTextureDbProxy>();

            RoadEngraver.RoadEngraverConfiguration roadEngraverConfiguration = _configuration.RoadEngraverConfiguration;

            RoadEngraver roadEngraver =
                new RoadEngraver(_gameInitializationFields.Retrive <ComputeShaderContainerGameObject>(),
                                 _gameInitializationFields.Retrive <UnityThreadComputeShaderExecutorObject>(),
                                 roadEngraverConfiguration);

            RoadEngravingTerrainFeatureApplierConfiguration roadEngravingTerrainFetureApplierConfiguration =
                _configuration.RoadEngravingTerrainFetureApplierConfiguration;

            return(new RoadEngravingTerrainFeatureApplier(pathProximityDb, roadEngraver,
                                                          roadEngravingTerrainFetureApplierConfiguration));
        }
Exemplo n.º 3
0
        public void CreatePathProximityTextureDb()
        {
            var roadDatabaseProxy = new RoadDatabaseProxy(new RoadDatabase(_configuration.RoadDatabasePath));

            _updatableContainer.AddOtherThreadProxy(roadDatabaseProxy);
            _gameInitializationFields.SetField(roadDatabaseProxy);

            PathProximityTextureGenerator proximityTextureGenerator = new PathProximityTextureGenerator(
                _gameInitializationFields.Retrive <TextureConcieverUTProxy>(),
                _configuration.PathProximityTextureGeneratorConfiguration);

            PathProximityArrayGenerator proximityArrayGenerator = new PathProximityArrayGenerator(
                _configuration.PathProximityArrayGeneratorConfiguration);

            var pathProximityTextureDbProxy = new PathProximityTextureDbProxy(new SpatialDb <TextureWithSize>(
                                                                                  new PathProximityTexturesProvider(roadDatabaseProxy, proximityTextureGenerator,
                                                                                                                    proximityArrayGenerator, _configuration.PathProximityTextureProviderConfiguration),
                                                                                  _configuration.PathProximityTextureDatabaseConfiguration
                                                                                  ));

            _gameInitializationFields.SetField(pathProximityTextureDbProxy);
            _updatableContainer.AddOtherThreadProxy(pathProximityTextureDbProxy);
        }