Ejemplo n.º 1
0
        /// <summary>
        /// Move
        /// </summary>
        /// <param name="direction">Direction</param>
        /// <param name="steps">Steps</param>
        public void Move(EGridDirection direction, uint steps)
        {
            int  index = wires.Count - 1;
            Wire wire  = wires[index];

            for (uint i = 0U, len = steps; i != len; i++)
            {
                if (wire.Move(direction) != Vector2Int.zero)
                {
                    for (int j = 0; j < wires.Count; j++)
                    {
                        if (j != index)
                        {
                            Wire other_wire = wires[j];
                            if (other_wire.ContainsPosition(wire.CurrentPosition))
                            {
                                if (!(intersections.Contains(wire.CurrentPosition)))
                                {
                                    intersections.Add(wire.CurrentPosition);
                                }
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Move
        /// </summary>
        /// <param name="direction">Direction</param>
        /// <returns>Current position</returns>
        public Vector2Int Move(EGridDirection direction)
        {
            switch (direction)
            {
            case EGridDirection.Up:
                currentPosition += Vector2Int.up;
                break;

            case EGridDirection.Down:
                currentPosition += Vector2Int.down;
                break;

            case EGridDirection.Left:
                currentPosition += Vector2Int.left;
                break;

            case EGridDirection.Right:
                currentPosition += Vector2Int.right;
                break;
            }
            lookup.Add(currentPosition);
            path.Add(currentPosition);
            return(currentPosition);
        }