Exemplo n.º 1
0
        public void NotifyBuildingSorrounds(Tile N, RoadDirections dir)
        {
            switch (dir)
            {
            case RoadDirections.East:
                East   = N;
                N.West = this;
                break;

            case RoadDirections.West:
                West   = N;
                N.East = this;
                break;

            case RoadDirections.North:
                North   = N;
                N.South = this;
                break;

            case RoadDirections.South:
                South   = N;
                N.North = this;
                break;
            }

            ChangeSprite();
        }
Exemplo n.º 2
0
    public Vector2 GetRandomDirection()
    {
        Vector2        lastQuadPos = _lastQuad.GetPosition();
        RoadDirections direction   = (RoadDirections)Random.Range(0, _directionsLength);

        switch (direction)
        {
        case RoadDirections.Forward:
            lastQuadPos.y++;
            break;

        case RoadDirections.Right:
            lastQuadPos.x++;
            break;
        }
        return(lastQuadPos);
    }
Exemplo n.º 3
0
        public static RoadDirections OppositeDirection(this RoadDirections directions)
        {
            switch (directions)
            {
            case RoadDirections.North:
                return(RoadDirections.South);

            case RoadDirections.South:
                return(RoadDirections.North);

            case RoadDirections.East:
                return(RoadDirections.West);

            default:
                return(RoadDirections.East);
            }
        }
Exemplo n.º 4
0
        public Tile GetNeighbor(RoadDirections dir)
        {
            switch (dir)
            {
            case RoadDirections.North:
                var info = Physics2D.Raycast(transform.position + (Vector3.up * 0.7f), Vector2.up, 0.1f);
                return(info.collider == null ? null : info.collider.gameObject.GetComponent <Tile>());

            case RoadDirections.East:
                var info2 = Physics2D.Raycast(transform.position + (Vector3.right * 0.7f), Vector2.right, 0.1f);
                return(info2.collider == null ? null : info2.collider.gameObject.GetComponent <Tile>());

            case RoadDirections.South:
                var info3 = Physics2D.Raycast(transform.position + (Vector3.down * 0.7f), Vector2.down, 0.1f);
                return(info3.collider == null ? null : info3.collider.gameObject.GetComponent <Tile>());;

            default:
                var info4 = Physics2D.Raycast(transform.position + (Vector3.left * 0.7f), Vector2.left, 0.1f);
                return(info4.collider == null ? null : info4.collider.gameObject.GetComponent <Tile>());
            }
        }