Exemplo n.º 1
0
        public void Update()
        {
            if (!_initializationWasSuccessfull)
            {
                return;
            }

            _movementCustodian.Update();
            if (_movementCustodian.IsMovementPossible())
            {
                RunOnceBox.RunOnce(ref _movementStartBox, () =>
                {
                    Debug.Log("time to moving " + Time.realtimeSinceStartup);
                }, 3);
            }
            Traveller.SetActive(_movementCustodian.IsMovementPossible());
            Overlay.SetMovementPossibilityDetails(_movementCustodian.ThisFrameBlockingProcesses);

            _updaterUntilException.Execute(() => { _ultraUpdatableContainer.Update(new MockedFromGameObjectCameraForUpdate(Traveller)); });
            var position3D            = Traveller.transform.position;
            var travellerFlatPosition = new Vector2(position3D.x, position3D.z);

            _eTerrainHeightPyramidFacade.Update(travellerFlatPosition);

            if (_gameInitializationFields.HasField <MultipleLevelsHeightPyramidExplorerGO>())
            {
                var explorer = _gameInitializationFields.Retrive <MultipleLevelsHeightPyramidExplorerGO>();
                explorer.UpdateTravellingUniforms(travellerFlatPosition, _eTerrainHeightPyramidFacade.PyramidCenterWorldSpacePerLevel);
                explorer.UpdateHeightmapSegmentFillingState(_heightmapListenersContainer.ListenersDict.ToDictionary(c => c.Key, c => c.Value.TokensDict));
            }
        }
Exemplo n.º 2
0
        public void Update()
        {
            var position3D            = Traveller.transform.position;
            var travellerFlatPosition = new Vector2(position3D.x, position3D.z);

            _eTerrainHeightPyramidFacade.Update(travellerFlatPosition);
            DrawObjects();

            var selectorWithParameters = EPropHotAreaSelectorWithParameters.Create(_ePropHotAreaSelector, _eTerrainHeightPyramidFacade.PyramidCenterWorldSpacePerLevel, travellerFlatPosition);

            _elevationManager.UpdateAsync(travellerFlatPosition, _eTerrainHeightPyramidFacade.PyramidCenterWorldSpacePerLevel, selectorWithParameters).Wait();

            if (Time.frameCount % 100 == 0)
            {
                if (RecalculateSectorsDivision)
                {
                    var propLocaleChanges = _elevationManager.RecalculateSectorsDivisionAsync(travellerFlatPosition).Result;
                    _dummyObjectsDisplayer.ProcessLocaleChanges(propLocaleChanges);
                    _dummyObjectsInstancingDisplayer.ProcessLocaleChanges(propLocaleChanges);
                }
                _sectorAreasDisplayer.Update(_elevationManager.DebugQuerySectorStates(selectorWithParameters));
            }

            var rt4 = selectorWithParameters.MergeRings;

            _mergeRingsDisplayer.Update(rt4);

            _mergeRingsDisplayer.SetActive(DisplayMergeRings);
            _sectorAreasDisplayer.SetActive(DisplaySelectorAreas);
            _dummyObjectsDisplayer.SetActive(DisplayDummyObjects);


            if (Time.frameCount > 10000 || _dummyObjectsInstancingDisplayer.CurrentObjectsCount > ObjectsToCreateCount)
            {
                return;
            }

            if (GenerateObjects)
            {
                var sideLength = 400f;
                var axisCount  = ObjectsToCreateOnOneLine;
                var newPropIds = Enumerable.Range(0, axisCount).SelectMany(x =>

                                                                           Enumerable.Range(0, axisCount).Select(y =>
                {
                    var flatPosition = new Vector2(((float)x / axisCount - 0.5f) * sideLength, ((float)y / axisCount - 0.5f) * sideLength);
                    return(new DebugFlatPositionWithEPropPointerAndId()
                    {
                        PointerWithId = _elevationManager.DebugRegisterPropWithElevationId(flatPosition),
                        FlatPosition = flatPosition
                    });
                }
                                                                                                                 )).ToArray();
                AddProps(newPropIds);
            }
        }