Exemple #1
0
        /// <summary>
        /// Отобразить планеты, входящие в прямоугольник
        /// </summary>
        /// <param name="rect">Прямоугольник в который входят планеты, которые требуется создать</param>
        private void FillPlanets(RectInt rect)
        {
            var iterator = rect.allPositionsWithin;

            CellInfo cell = null;

            while (iterator.MoveNext())
            {
                var worldPos = iterator.Current;
                var cellPos  = SettingsAccess.GetCellBeginPosition(worldPos);

                if (cell == null ||
                    cell.Pos != cellPos)
                {
                    cell = _cells.GetCell(cellPos);
                }

                var cellItemPos = cell.GetCellItemPosition(worldPos);

                var rating = cell.GetRating(cellItemPos);

                if (rating > 0)
                {
                    var posId = SettingsAccess.GetId(worldPos);

                    var planet = _planets.Create(posId);

                    planet.Show(worldPos, SettingsAccess.ConvertToWorldPosition(worldPos), rating);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Создать планеты из списка
        /// </summary>
        /// <param name="cellItems">Список планет для создания</param>
        private void FillAdvancedVisiblePlanets(SortedCellItem[] cellItems)
        {
            _planets.DestroyAll();

            var precision = _zoom.GetZoomPrecision();

            for (int i = 0; i < cellItems.Length; i++)
            {
                var cellItem = cellItems[i];

                var cell = _cells.GetCell(cellItem.CellPos);

                var worldPos = cell.GetWordPosition(cellItem.Index);

                var posId = SettingsAccess.GetId(worldPos);

                var planet = _planets.Create(posId);

                planet.Show(worldPos, SettingsAccess.ConvertToWorldPosition(worldPos, precision), cellItem.Rating);
            }

            SetPosition();

            _prevRect = null;
        }
Exemple #3
0
        /// <summary>
        /// Очистить прямоугольник от планет
        /// </summary>
        /// <param name="rect">Прямоугольник который требуется очистить от планет</param>
        private void ClearPlanets(RectInt rect)
        {
            var iterator = rect.allPositionsWithin;

            while (iterator.MoveNext())
            {
                var posId = SettingsAccess.GetId(iterator.Current);

                var planet = _planets.GetByIdOrNull(posId);

                if (planet != null)
                {
                    planet.Destroy();
                }
            }
        }
Exemple #4
0
 /// <summary>
 /// Уникальный индентификатор элемента пулинга
 /// </summary>
 /// <returns>Идентификатор</returns>
 public override int GetId()
 {
     return(SettingsAccess.GetId(_cellItemPosition));
 }