示例#1
0
 /// <summary>
 /// 初始化格子
 /// </summary>
 private void ShowTitle(bool _bool)
 {
     foreach (var GTs in _tiles)
     {
         foreach (var GT in GTs)
         {
             if (_bool)
             {
                 GT.CheckCanUse();
             }
             else
             {
                 GT.CloseTile();
             }
         }
     }
 }
示例#2
0
        /// <summary>
        /// 设置当前格子颜色
        /// </summary>
        private void SetGroundTitleColor(Build build)
        {
            if (_lightGroundTiles.Count != 0)
            {
                foreach (var GT in _lightGroundTiles)
                {
                    GT.CloseTile();
                }
                _lightGroundTiles.Clear();
            }

            _dotEnough = false;
            for (int i = 0; i < build.Area.Length; i++)
            {
                for (int j = 0; j < build.Area[i].Length; j++)
                {
                    if (build.Area[i][j])
                    {
                        if (_nowGt.X + i <= _tiles.Length - 1)
                        {
                            if (_nowGt.Z + j <= _tiles[_nowGt.X + i].Length - 1)
                            {
                                _lightGroundTiles.Add(_tiles[_nowGt.X + i][_nowGt.Z + j]);
                            }
                            else
                            {
                                _dotEnough = true;
                            }
                        }
                        else
                        {
                            _dotEnough = true;
                        }
                    }
                }
            }

            if (_dotEnough)
            {
                _canPut = false;
                foreach (var GT in _lightGroundTiles)
                {
                    GT.SetColorByUse(_canPut);
                }
                return;
            }

            if (_lightGroundTiles.Count == 0)
            {
                return;
            }
            {
                var tileHight = _lightGroundTiles[0].Y;
                foreach (var GT in _lightGroundTiles)
                {
                    if (!GT.UseAble)
                    {
                        _canPut = false;
                        GT.SetColorByUse(_canPut);
                        continue;
                    }

                    if (tileHight != GT.Y)
                    {
                        _canPut = false;
                        foreach (var GT2 in _lightGroundTiles)
                        {
                            GT2.SetColorByUse(_canPut);
                        }
                        return;
                    }

                    if (GT.UsedBuildList.Count >= 1)
                    {
                        _canPut = false;
                        GT.SetColorByUse(_canPut);
                        continue;
                    }

                    _canPut = true;
                    GT.SetColorByUse(_canPut);
                }
            }
        }