Example #1
0
        public void Start()
        {
            var msw = new MyStopWatch();

            msw.StartSegment("Start");
            TaskUtils.ExecuteActionWithOverridenMultithreading(true, () =>
            {
                _feConfiguration = new FEConfiguration(new FilePathsConfiguration())
                {
                    Multithreading = Multithreading
                };
                _feConfiguration.EngraveTerrainFeatures = true;
                _feConfiguration.EngraveRoadsInTerrain  = true;

                _feConfiguration.TerrainShapeDbConfiguration.UseTextureLoadingFromDisk = true;
                _feConfiguration.TerrainShapeDbConfiguration.UseTextureSavingToDisk    = false;
                _feConfiguration.TerrainShapeDbConfiguration.MergeTerrainDetail        = true;

                var containerGameObject = GameObject.FindObjectOfType <ComputeShaderContainerGameObject>();
                VegetationConfiguration.FeConfiguration = _feConfiguration;

                _heightmapListenersContainer = new HeightmapSegmentFillingListenersContainer();
                _gameInitializationFields    = new GameInitializationFields();
                _updaterUntilException       = new UpdaterUntilException();
                _movementCustodian           = new TravellerMovementCustodian(Traveller);
                _gameInitializationFields.SetField(_movementCustodian);


                _ultraUpdatableContainer = ETerrainTestUtils.InitializeFinalElements(_feConfiguration, containerGameObject, _gameInitializationFields, initializeLegacyDesignBodySpotUpdater: false);

                var startConfiguration = ETerrainHeightPyramidFacadeStartConfiguration.DefaultConfiguration;
                var initializingHelper = InitializeETerrain(startConfiguration);
                initializingHelper.InitializeUTService(new UnityThreadComputeShaderExecutorObject());
                InitializeUI(startConfiguration);

                Traveller.transform.position = new Vector3(startConfiguration.InitialTravellerPosition.x, Traveller.transform.position.y, startConfiguration.InitialTravellerPosition.y);
            });

            Debug.Log("Init time " + msw.CollectResults());
            _initializationWasSuccessfull = true;
        }