Esempio n. 1
0
        public void SelectGridItem(GridPosition position, Vector3 inputPosition)
        {
            var item = FindGridItem(position.rowPosition, position.columnPosition);

            item.Select(inputPosition);
        }
        public override IEnumerable <GridPosition> NeighborPositions(GridPosition p, GridSize gridSize)
        {
            var even = p.b % 2 == 0;

            if (even)
            {
                if (p.a > gridSize.minA && p.b < gridSize.maxB)
                {
                    yield return(new GridPosition(p.a - 1, p.b + 1));
                }

                if (p.b < gridSize.maxB)
                {
                    yield return(new GridPosition(p.a, p.b + 1));
                }

                if (p.a > gridSize.minA)
                {
                    yield return(new GridPosition(p.a - 1, p.b));
                }

                if (p.a < gridSize.maxA)
                {
                    yield return(new GridPosition(p.a + 1, p.b));
                }

                if (p.a > gridSize.minA && p.b > gridSize.minB)
                {
                    yield return(new GridPosition(p.a - 1, p.b - 1));
                }

                if (p.b > gridSize.minB)
                {
                    yield return(new GridPosition(p.a, p.b - 1));
                }
            }
            else
            {
                if (p.b < gridSize.maxB)
                {
                    yield return(new GridPosition(p.a, p.b + 1));
                }

                if (p.a < gridSize.maxA && p.b < gridSize.maxB)
                {
                    yield return(new GridPosition(p.a + 1, p.b + 1));
                }

                if (p.a > gridSize.minA)
                {
                    yield return(new GridPosition(p.a - 1, p.b));
                }

                if (p.a < gridSize.maxA)
                {
                    yield return(new GridPosition(p.a + 1, p.b));
                }

                if (p.b > gridSize.minB)
                {
                    yield return(new GridPosition(p.a, p.b - 1));
                }

                if (p.a < gridSize.maxA && p.b > gridSize.minB)
                {
                    yield return(new GridPosition(p.a + 1, p.b - 1));
                }
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Returns the distance between two GridPositions
 /// </summary>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <returns></returns>
 public static float Distance(GridPosition a, GridPosition b)
 {
     return(Mathf.Sqrt(Mathf.Pow(Mathf.Abs(a.row - b.row), 2) + Mathf.Pow(Mathf.Abs(a.column - b.column), 2)));
 }
Esempio n. 4
0
 public void Init(GridPosition pos, GridComponent grid)
 {
     _position    = pos;
     _grid        = grid;
     _highlighter = GetComponent <Highlighter>();
 }
Esempio n. 5
0
 public override Vector2 PositionCoordinates(GridPosition p)
 {
     return(unitA * p.a + unitB * p.b);
 }
Esempio n. 6
0
 public bool Contains(GridPosition pos)
 {
     return(minA <= pos.a && pos.a <= maxA && minB <= pos.b && pos.b <= maxB);
 }