Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public float GetRoadAngleAndType(List<Node> s, out int blocktype) {
- Vector2 d = new Vector2();
- float angle = 0f;
- //Last or first block handling
- if (s.Count < 3) {
- blocktype = 0;
- d.y = ((s[0].z + s[1].z) / 2f) - s[1].z;
- angle += d.y == 0 ? 90 : 0;
- return angle;
- }
- d.x = ((s[0].x + s[1].x + s[2].x) / 3f) - s[1].x;
- d.y = ((s[0].z + s[1].z + s[2].z) / 3f) - s[1].z;
- if (d.magnitude == 0) {
- blocktype = 0;
- d.y = ((s[0].z + s[1].z + s[2].z) / 3f) - s[2].z;
- angle += d.y == 0 ? 90 : 0;
- } else {
- blocktype = 1;
- angle += d.x > 0 ? (d.y > 0 ? 270 : 180) : (d.y < 0 ? 90 : 0);
- }
- return angle;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement