예제 #1
0
 public FEInitializingHelper(GameInitializationFields gameInitializationFields,
                             UltraUpdatableContainer updatableContainer, FEConfiguration configuration)
 {
     _gameInitializationFields = gameInitializationFields;
     _updatableContainer       = updatableContainer;
     _configuration            = configuration;
 }
 public FinalTerrainInitialization(UltraUpdatableContainer ultraUpdatableContainer,
                                   GameInitializationFields gameInitializationFields, FEConfiguration configuration, FeGRingConfiguration gRingConfiguration)
 {
     _ultraUpdatableContainer  = ultraUpdatableContainer;
     _gameInitializationFields = gameInitializationFields;
     _configuration            = configuration;
     _gRingConfiguration       = gRingConfiguration;
 }
 public FETerrainShapeDbInitialization(UltraUpdatableContainer ultraUpdatableContainer,
                                       GameInitializationFields gameInitializationFields, FEConfiguration configuration,
                                       FilePathsConfiguration filePathsConfiguration)
 {
     _ultraUpdatableContainer  = ultraUpdatableContainer;
     _gameInitializationFields = gameInitializationFields;
     _configuration            = configuration;
     _filePathsConfiguration   = filePathsConfiguration;
 }
예제 #4
0
        // Use this for initialization
        void Start()
        {
            _configuration = new FEConfiguration(new FilePathsConfiguration())
            {
                Multithreading = UseMultithreading
            };
            _configuration.TerrainShapeDbConfiguration = TerrainShapeDbConfiguration;
            FeGRingConfiguration.FeConfiguration       = _configuration;
            VegetationConfiguration.FeConfiguration    = _configuration;

            TaskUtils.SetGlobalMultithreading(_configuration.Multithreading);
            TaskUtils.ExecuteActionWithOverridenMultithreading(true, () =>
            {
                MyProfiler.BeginSample("Sample1");
                msw.StartSegment("Game initialization");

                GlobalServicesProfileInfo servicesProfileInfo = new GlobalServicesProfileInfo();
                if (GraphicsOverlay != null)
                {
                    GraphicsOverlay.ServicesProfileInfo = servicesProfileInfo;
                }

                _ultraUpdatableContainer = new UltraUpdatableContainer(
                    _configuration.SchedulerConfiguration,
                    servicesProfileInfo,
                    _configuration.UpdatableContainerConfiguration);

                _configuration.TerrainShapeDbConfiguration.UseTextureSavingToDisk = true;

                _gameInitializationFields.SetField(ContainerGameObject);
                _gameInitializationFields.SetField(_configuration.Repositioner);
                _gameInitializationFields.SetField(_configuration.HeightDenormalizer);

                var initializingHelper =
                    new FEInitializingHelper(_gameInitializationFields, _ultraUpdatableContainer, _configuration);
                initializingHelper.InitializeUTService(new TextureConcieverUTProxy());
                initializingHelper.InitializeUTService(new UnityThreadComputeShaderExecutorObject(_configuration.UseMultistepComputeShaderExecution));
                initializingHelper.InitializeUTService(new CommonExecutorUTProxy());
                initializingHelper.CreatePathProximityTextureDb();

                SetInitialCameraPosition();

                initializingHelper.InitializeDesignBodySpotUpdater();
                initializingHelper.InitializeUTRendererProxy();
                initializingHelper.InitializeUTService(new MeshGeneratorUTProxy(new MeshGeneratorService()));
                initializingHelper.InitializeMonoliticRing2RegionsDatabase();

                var finalSurfacePathInitialization =
                    new Ring2PatchInitializer(_gameInitializationFields, _ultraUpdatableContainer, new Ring2PatchInitializerConfiguration(_configuration));
                finalSurfacePathInitialization.Start();

                var finalTerrainInitialization =
                    new FinalTerrainInitialization(_ultraUpdatableContainer, _gameInitializationFields, _configuration, FeGRingConfiguration);
                finalTerrainInitialization.Start();

                initializingHelper.InitializeGlobalInstancingContainer();
                var finalVegetation = new FinalVegetation(_gameInitializationFields, _ultraUpdatableContainer, VegetationConfiguration);
                finalVegetation.Start();
            });

            MyProfiler.EndSample();
        }
예제 #5
0
 public Ring2PatchInitializerConfiguration(FEConfiguration feConfiguration)
 {
     _feConfiguration = feConfiguration;
 }