Beispiel #1
0
        private void OnNewStorageReceived(CubeStorage storage)
        {
            if (_storage == null)
            {
                _storage = storage;
                return;
            }

            var currentTime   = DateTime.ParseExact(_storage.ModifiedData, "MM-dd-yyyy", CultureInfo.InvariantCulture);
            var toCompareTime = DateTime.ParseExact(storage.ModifiedData, "MM-dd-yyyy", CultureInfo.InvariantCulture);

            if (!_comparer.IsSameDates(currentTime, toCompareTime))
            {
                for (var i = 0; i < storage.Data.Count; i++)
                {
                    var oldPosition = CreatedFigures[i].ToMovePosition;
                    var newPosition = storage.Data[i].Coordinate.Get;
                    if (oldPosition.Equals(newPosition))
                    {
                        continue;
                    }

                    CreatedFigures[i].ToMovePosition = newPosition;
                    CreatedFigures[i].Move();
                }
            }

            _storage = storage;
        }
        private void CreateCubes(CubeStorage storage)
        {
            var customizator = new FigureCustomization();

            foreach (var cubeData in storage.Data)
            {
                var tempFigure = Instantiate(_figurePrefab, new Vector3(), Quaternion.identity);
                customizator.SetName(tempFigure, cubeData.Name);
                customizator.SetID(tempFigure, cubeData.Id);
                customizator.SetType(tempFigure, cubeData.Type);
                customizator.SetLinkToEventsManager(tempFigure, _eventsManager);
                customizator.SetToMovePosition(tempFigure, cubeData.Coordinate.Get);
                _application.CreatedFigures.Add(tempFigure);
            }

            _eventsManager.OnCubeStorageReceived -= CreateCubes;
        }
 public void SendCubeStorage(CubeStorage storage)
 {
     OnCubeStorageReceived?.Invoke(storage);
 }