Esempio n. 1
0
 public static GridRotation RotationTo(JointConnectionDirection source, JointConnectionDirection target)
 {
     if (source == BasePart.JointConnectionDirection.Any || target == BasePart.JointConnectionDirection.Any || source == BasePart.JointConnectionDirection.None || target == BasePart.JointConnectionDirection.None)
     {
         return(BasePart.GridRotation.Deg_0);
     }
     if (source == BasePart.JointConnectionDirection.LeftAndRight)
     {
         if (target == BasePart.JointConnectionDirection.UpAndDown || target == BasePart.JointConnectionDirection.Up || target == BasePart.JointConnectionDirection.Down)
         {
             return(BasePart.GridRotation.Deg_90);
         }
         return(BasePart.GridRotation.Deg_0);
     }
     else
     {
         if (source != BasePart.JointConnectionDirection.UpAndDown)
         {
             int num = target - source;
             return((GridRotation)((num + 4) % 4));
         }
         if (target == BasePart.JointConnectionDirection.LeftAndRight || target == BasePart.JointConnectionDirection.Left || target == BasePart.JointConnectionDirection.Right)
         {
             return(BasePart.GridRotation.Deg_90);
         }
         return(BasePart.GridRotation.Deg_0);
     }
 }
Esempio n. 2
0
    public JointConnectionDirection GlobalJointConnectionDirection(JointConnectionDirection localDirection)
    {
        if (localDirection == BasePart.JointConnectionDirection.Any || localDirection == BasePart.JointConnectionDirection.None)
        {
            return(localDirection);
        }
        JointConnectionDirection jointConnectionDirection = localDirection;

        if (localDirection == BasePart.JointConnectionDirection.LeftAndRight)
        {
            if (this.m_gridRotation == BasePart.GridRotation.Deg_90 || this.m_gridRotation == BasePart.GridRotation.Deg_270)
            {
                jointConnectionDirection = BasePart.JointConnectionDirection.UpAndDown;
            }
        }
        else if (localDirection == BasePart.JointConnectionDirection.UpAndDown)
        {
            if (this.m_gridRotation == BasePart.GridRotation.Deg_90 || this.m_gridRotation == BasePart.GridRotation.Deg_270)
            {
                jointConnectionDirection = BasePart.JointConnectionDirection.LeftAndRight;
            }
        }
        else
        {
            jointConnectionDirection = (JointConnectionDirection)(((int)(localDirection - 1) + (int)m_gridRotation) % 4 + 1);
        }
        if (this.m_flipped)
        {
            if (jointConnectionDirection == BasePart.JointConnectionDirection.Left)
            {
                return(BasePart.JointConnectionDirection.Right);
            }
            if (jointConnectionDirection == BasePart.JointConnectionDirection.Right)
            {
                return(BasePart.JointConnectionDirection.Left);
            }
        }
        return(jointConnectionDirection);
    }