prefabs.cfg 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // this cfg defines the shapes of heightfield prefabs, i.e. arches and such
  2. // arch of 2xN cubes, i.e. 3 vertices [0..2]
  3. // archvertex <cubespan> <vertex> <delta>
  4. // vertices not defined have a 0 delta
  5. const av [
  6. push vn (+ $arg1 1)
  7. if (= (listlen $arg2) $arg1) [
  8. loop i $arg1 [
  9. archvertex $vn (+ $i 1) (at $arg2 $i)
  10. ]
  11. ][
  12. loop i (div $vn 2) [
  13. archvertex $vn (+ $i 1) (at $arg2 $i)
  14. archvertex $vn (- $vn (+ $i 1)) (at $arg2 $i)
  15. ]
  16. ]
  17. pop vn
  18. ]
  19. av 1 "2"
  20. av 2 "4 4"
  21. av 3 "5 6 5"
  22. av 4 "5 6 6 5"
  23. av 5 "5 7 8 7 5"
  24. av 6 "5 7 8 8 7 5"
  25. av 7 "7 11 13 14 13 11 7"
  26. av 8 "7 11 13 14 14 13 11 7"
  27. av 9 "7 11 13 14 14 14 13 11 7"
  28. av 10 "7 11 13 14 14 14 14 13 11 7"
  29. av 11 "8 13 16 18 19 19 19 18 16 13 8"
  30. av 12 "8 13 16 18 19 19 19 19 18 16 13 8"
  31. av 13 "8 13 16 18 19 19 19 19 19 18 16 13 8" // these last few can be improved
  32. av 14 "8 13 16 18 19 19 19 19 19 19 18 16 13 8"
  33. av 15 "8 13 16 18 19 19 19 19 19 19 19 18 16 13 8"
  34. // add wider arches here! :)
  35. const av_measure [
  36. push ii ""
  37. selectionwalk [ ii = (concat $ii $sw_vdelta) ] [ if (&& (!= (at $sw_cursel 2) 1) (!= (at $sw_cursel 3) 1)) [ echo "using wide selections may lead to weird measurements..."] ]
  38. push offs (at $ii 0)
  39. push res ""
  40. loop i (listlen $ii) [ if $i [ res = (concat $res (- (at $ii $i) $offs)) ] ]
  41. result (pop res offs ii)
  42. ]