Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.80 KB | None | 0 0
  1.     public float GetRoadAngleAndType(List<Node> s, out int blocktype) {
  2.  
  3.  
  4.         Vector2 d = new Vector2();
  5.         float angle = 0f;
  6.  
  7.         //Last or first block handling
  8.         if (s.Count < 3) {
  9.             blocktype = 0;
  10.             d.y = ((s[0].z + s[1].z) / 2f) - s[1].z;
  11.             angle += d.y == 0 ? 90 : 0;
  12.             return angle;
  13.         }
  14.  
  15.         d.x = ((s[0].x + s[1].x + s[2].x) / 3f) - s[1].x;
  16.         d.y = ((s[0].z + s[1].z + s[2].z) / 3f) - s[1].z;
  17.  
  18.         if (d.magnitude == 0) {
  19.             blocktype = 0;
  20.             d.y = ((s[0].z + s[1].z + s[2].z) / 3f) - s[2].z;
  21.             angle += d.y == 0 ? 90 : 0;
  22.         } else {
  23.             blocktype = 1;
  24.             angle += d.x > 0 ? (d.y > 0 ? 270 : 180) : (d.y < 0 ? 90 : 0);
  25.         }
  26.         return angle;
  27.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement