redscript-mc 2.4.1 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (905) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +2 -0
  3. package/dist/data/mathdemo/function/__load.mcfunction +2 -0
  4. package/dist/data/mathdemo/function/_atan_init.mcfunction +4 -0
  5. package/dist/data/mathdemo/function/_math_init.mcfunction +4 -0
  6. package/dist/data/mathdemo/function/add2d_x.mcfunction +5 -0
  7. package/dist/data/mathdemo/function/add2d_y.mcfunction +5 -0
  8. package/dist/data/mathdemo/function/add3d_x.mcfunction +5 -0
  9. package/dist/data/mathdemo/function/add3d_y.mcfunction +5 -0
  10. package/dist/data/mathdemo/function/add3d_z.mcfunction +5 -0
  11. package/dist/data/mathdemo/function/air_drag_fx.mcfunction +2 -0
  12. package/dist/data/mathdemo/function/apply_drag.mcfunction +8 -0
  13. package/dist/data/mathdemo/function/apply_gravity.mcfunction +6 -0
  14. package/dist/data/mathdemo/function/approx_eq.mcfunction +10 -0
  15. package/dist/data/mathdemo/function/approx_eq__merge_1.mcfunction +3 -0
  16. package/dist/data/mathdemo/function/approx_eq__merge_3.mcfunction +2 -0
  17. package/dist/data/mathdemo/function/approx_eq__then_0.mcfunction +4 -0
  18. package/dist/data/mathdemo/function/approx_eq__then_2.mcfunction +2 -0
  19. package/dist/data/mathdemo/function/atan2_fixed.mcfunction +6 -0
  20. package/dist/data/mathdemo/function/atan2_fixed__else_30.mcfunction +2 -0
  21. package/dist/data/mathdemo/function/atan2_fixed__loop_body_26.mcfunction +21 -0
  22. package/dist/data/mathdemo/function/atan2_fixed__loop_exit_27.mcfunction +5 -0
  23. package/dist/data/mathdemo/function/atan2_fixed__loop_header_25.mcfunction +3 -0
  24. package/dist/data/mathdemo/function/atan2_fixed__merge_1.mcfunction +4 -0
  25. package/dist/data/mathdemo/function/atan2_fixed__merge_10.mcfunction +5 -0
  26. package/dist/data/mathdemo/function/atan2_fixed__merge_12.mcfunction +2 -0
  27. package/dist/data/mathdemo/function/atan2_fixed__merge_16.mcfunction +5 -0
  28. package/dist/data/mathdemo/function/atan2_fixed__merge_18.mcfunction +4 -0
  29. package/dist/data/mathdemo/function/atan2_fixed__merge_20.mcfunction +4 -0
  30. package/dist/data/mathdemo/function/atan2_fixed__merge_22.mcfunction +4 -0
  31. package/dist/data/mathdemo/function/atan2_fixed__merge_24.mcfunction +3 -0
  32. package/dist/data/mathdemo/function/atan2_fixed__merge_29.mcfunction +1 -0
  33. package/dist/data/mathdemo/function/atan2_fixed__merge_3.mcfunction +4 -0
  34. package/dist/data/mathdemo/function/atan2_fixed__merge_32.mcfunction +4 -0
  35. package/dist/data/mathdemo/function/atan2_fixed__merge_34.mcfunction +4 -0
  36. package/dist/data/mathdemo/function/atan2_fixed__merge_36.mcfunction +3 -0
  37. package/dist/data/mathdemo/function/atan2_fixed__merge_40.mcfunction +3 -0
  38. package/dist/data/mathdemo/function/atan2_fixed__merge_6.mcfunction +2 -0
  39. package/dist/data/mathdemo/function/atan2_fixed__then_0.mcfunction +4 -0
  40. package/dist/data/mathdemo/function/atan2_fixed__then_11.mcfunction +2 -0
  41. package/dist/data/mathdemo/function/atan2_fixed__then_15.mcfunction +4 -0
  42. package/dist/data/mathdemo/function/atan2_fixed__then_17.mcfunction +4 -0
  43. package/dist/data/mathdemo/function/atan2_fixed__then_19.mcfunction +2 -0
  44. package/dist/data/mathdemo/function/atan2_fixed__then_2.mcfunction +2 -0
  45. package/dist/data/mathdemo/function/atan2_fixed__then_21.mcfunction +2 -0
  46. package/dist/data/mathdemo/function/atan2_fixed__then_23.mcfunction +5 -0
  47. package/dist/data/mathdemo/function/atan2_fixed__then_28.mcfunction +4 -0
  48. package/dist/data/mathdemo/function/atan2_fixed__then_31.mcfunction +4 -0
  49. package/dist/data/mathdemo/function/atan2_fixed__then_33.mcfunction +4 -0
  50. package/dist/data/mathdemo/function/atan2_fixed__then_35.mcfunction +1 -0
  51. package/dist/data/mathdemo/function/atan2_fixed__then_39.mcfunction +3 -0
  52. package/dist/data/mathdemo/function/atan2_fixed__then_5.mcfunction +2 -0
  53. package/dist/data/mathdemo/function/atan2_fixed__then_9.mcfunction +4 -0
  54. package/dist/data/mathdemo/function/bounce_v.mcfunction +10 -0
  55. package/dist/data/mathdemo/function/cbrt_fx.mcfunction +5 -0
  56. package/dist/data/mathdemo/function/cbrt_fx__loop_body_6.mcfunction +7 -0
  57. package/dist/data/mathdemo/function/cbrt_fx__loop_exit_7.mcfunction +1 -0
  58. package/dist/data/mathdemo/function/cbrt_fx__loop_header_5.mcfunction +4 -0
  59. package/dist/data/mathdemo/function/cbrt_fx__merge_1.mcfunction +8 -0
  60. package/dist/data/mathdemo/function/cbrt_fx__merge_11.mcfunction +5 -0
  61. package/dist/data/mathdemo/function/cbrt_fx__merge_13.mcfunction +4 -0
  62. package/dist/data/mathdemo/function/cbrt_fx__merge_4.mcfunction +2 -0
  63. package/dist/data/mathdemo/function/cbrt_fx__merge_9.mcfunction +13 -0
  64. package/dist/data/mathdemo/function/cbrt_fx__then_0.mcfunction +2 -0
  65. package/dist/data/mathdemo/function/cbrt_fx__then_10.mcfunction +2 -0
  66. package/dist/data/mathdemo/function/cbrt_fx__then_12.mcfunction +2 -0
  67. package/dist/data/mathdemo/function/cbrt_fx__then_3.mcfunction +2 -0
  68. package/dist/data/mathdemo/function/cbrt_fx__then_8.mcfunction +2 -0
  69. package/dist/data/mathdemo/function/ceil_div.mcfunction +9 -0
  70. package/dist/data/mathdemo/function/chebyshev.mcfunction +14 -0
  71. package/dist/data/mathdemo/function/chebyshev3d.mcfunction +19 -0
  72. package/dist/data/mathdemo/function/chebyshev3d__merge_1.mcfunction +4 -0
  73. package/dist/data/mathdemo/function/chebyshev3d__merge_3.mcfunction +4 -0
  74. package/dist/data/mathdemo/function/chebyshev3d__merge_5.mcfunction +4 -0
  75. package/dist/data/mathdemo/function/chebyshev3d__merge_7.mcfunction +3 -0
  76. package/dist/data/mathdemo/function/chebyshev3d__merge_9.mcfunction +1 -0
  77. package/dist/data/mathdemo/function/chebyshev3d__then_0.mcfunction +4 -0
  78. package/dist/data/mathdemo/function/chebyshev3d__then_2.mcfunction +4 -0
  79. package/dist/data/mathdemo/function/chebyshev3d__then_4.mcfunction +4 -0
  80. package/dist/data/mathdemo/function/chebyshev3d__then_6.mcfunction +2 -0
  81. package/dist/data/mathdemo/function/chebyshev3d__then_8.mcfunction +2 -0
  82. package/dist/data/mathdemo/function/chebyshev__merge_1.mcfunction +4 -0
  83. package/dist/data/mathdemo/function/chebyshev__merge_3.mcfunction +3 -0
  84. package/dist/data/mathdemo/function/chebyshev__merge_5.mcfunction +1 -0
  85. package/dist/data/mathdemo/function/chebyshev__then_0.mcfunction +4 -0
  86. package/dist/data/mathdemo/function/chebyshev__then_2.mcfunction +4 -0
  87. package/dist/data/mathdemo/function/chebyshev__then_4.mcfunction +1 -0
  88. package/dist/data/mathdemo/function/circular_x.mcfunction +14 -0
  89. package/dist/data/mathdemo/function/circular_z.mcfunction +14 -0
  90. package/dist/data/mathdemo/function/clamp_velocity.mcfunction +5 -0
  91. package/dist/data/mathdemo/function/clamp_velocity__merge_1.mcfunction +5 -0
  92. package/dist/data/mathdemo/function/clamp_velocity__merge_4.mcfunction +1 -0
  93. package/dist/data/mathdemo/function/clamp_velocity__then_0.mcfunction +1 -0
  94. package/dist/data/mathdemo/function/clamp_velocity__then_3.mcfunction +3 -0
  95. package/dist/data/mathdemo/function/combinations.mcfunction +6 -0
  96. package/dist/data/mathdemo/function/combinations__loop_body_9.mcfunction +15 -0
  97. package/dist/data/mathdemo/function/combinations__loop_exit_10.mcfunction +1 -0
  98. package/dist/data/mathdemo/function/combinations__loop_header_8.mcfunction +3 -0
  99. package/dist/data/mathdemo/function/combinations__merge_1.mcfunction +3 -0
  100. package/dist/data/mathdemo/function/combinations__merge_4.mcfunction +6 -0
  101. package/dist/data/mathdemo/function/combinations__merge_7.mcfunction +3 -0
  102. package/dist/data/mathdemo/function/combinations__then_0.mcfunction +2 -0
  103. package/dist/data/mathdemo/function/combinations__then_3.mcfunction +2 -0
  104. package/dist/data/mathdemo/function/combinations__then_6.mcfunction +4 -0
  105. package/dist/data/mathdemo/function/cos_fixed.mcfunction +7 -0
  106. package/dist/data/mathdemo/function/cross2d.mcfunction +11 -0
  107. package/dist/data/mathdemo/function/cross3d_x.mcfunction +11 -0
  108. package/dist/data/mathdemo/function/cross3d_y.mcfunction +11 -0
  109. package/dist/data/mathdemo/function/cross3d_z.mcfunction +11 -0
  110. package/dist/data/mathdemo/function/demo_easing.mcfunction +12 -0
  111. package/dist/data/mathdemo/function/demo_math.mcfunction +16 -0
  112. package/dist/data/mathdemo/function/demo_noise.mcfunction +14 -0
  113. package/dist/data/mathdemo/function/demo_physics.mcfunction +11 -0
  114. package/dist/data/mathdemo/function/demo_physics__loop_body_1.mcfunction +9 -0
  115. package/dist/data/mathdemo/function/demo_physics__loop_body_4.mcfunction +18 -0
  116. package/dist/data/mathdemo/function/demo_physics__loop_exit_2.mcfunction +6 -0
  117. package/dist/data/mathdemo/function/demo_physics__loop_exit_5.mcfunction +1 -0
  118. package/dist/data/mathdemo/function/demo_physics__loop_header_0.mcfunction +4 -0
  119. package/dist/data/mathdemo/function/demo_physics__loop_header_3.mcfunction +4 -0
  120. package/dist/data/mathdemo/function/distance2d_fixed.mcfunction +13 -0
  121. package/dist/data/mathdemo/function/distance3d_fixed.mcfunction +18 -0
  122. package/dist/data/mathdemo/function/divfix.mcfunction +6 -0
  123. package/dist/data/mathdemo/function/divfix__merge_1.mcfunction +6 -0
  124. package/dist/data/mathdemo/function/divfix__then_0.mcfunction +2 -0
  125. package/dist/data/mathdemo/function/dot2d.mcfunction +11 -0
  126. package/dist/data/mathdemo/function/dot3d.mcfunction +17 -0
  127. package/dist/data/mathdemo/function/ease_in_back.mcfunction +26 -0
  128. package/dist/data/mathdemo/function/ease_in_bounce.mcfunction +9 -0
  129. package/dist/data/mathdemo/function/ease_in_cubic.mcfunction +12 -0
  130. package/dist/data/mathdemo/function/ease_in_expo.mcfunction +5 -0
  131. package/dist/data/mathdemo/function/ease_in_expo__merge_1.mcfunction +11 -0
  132. package/dist/data/mathdemo/function/ease_in_expo__then_0.mcfunction +2 -0
  133. package/dist/data/mathdemo/function/ease_in_out_back.mcfunction +5 -0
  134. package/dist/data/mathdemo/function/ease_in_out_back__merge_1.mcfunction +14 -0
  135. package/dist/data/mathdemo/function/ease_in_out_back__then_0.mcfunction +10 -0
  136. package/dist/data/mathdemo/function/ease_in_out_bounce.mcfunction +5 -0
  137. package/dist/data/mathdemo/function/ease_in_out_bounce__merge_1.mcfunction +14 -0
  138. package/dist/data/mathdemo/function/ease_in_out_bounce__then_0.mcfunction +10 -0
  139. package/dist/data/mathdemo/function/ease_in_out_cubic.mcfunction +5 -0
  140. package/dist/data/mathdemo/function/ease_in_out_cubic__merge_1.mcfunction +17 -0
  141. package/dist/data/mathdemo/function/ease_in_out_cubic__then_0.mcfunction +13 -0
  142. package/dist/data/mathdemo/function/ease_in_out_quad.mcfunction +5 -0
  143. package/dist/data/mathdemo/function/ease_in_out_quad__merge_1.mcfunction +12 -0
  144. package/dist/data/mathdemo/function/ease_in_out_quad__then_0.mcfunction +8 -0
  145. package/dist/data/mathdemo/function/ease_in_out_sine.mcfunction +5 -0
  146. package/dist/data/mathdemo/function/ease_in_out_sine__merge_1.mcfunction +14 -0
  147. package/dist/data/mathdemo/function/ease_in_out_sine__then_0.mcfunction +10 -0
  148. package/dist/data/mathdemo/function/ease_in_quad.mcfunction +7 -0
  149. package/dist/data/mathdemo/function/ease_in_quad__const_5000.mcfunction +5 -0
  150. package/dist/data/mathdemo/function/ease_in_quart.mcfunction +12 -0
  151. package/dist/data/mathdemo/function/ease_in_sine.mcfunction +30 -0
  152. package/dist/data/mathdemo/function/ease_linear.mcfunction +2 -0
  153. package/dist/data/mathdemo/function/ease_linear__const_5000.mcfunction +2 -0
  154. package/dist/data/mathdemo/function/ease_out_back.mcfunction +9 -0
  155. package/dist/data/mathdemo/function/ease_out_back__const_5000.mcfunction +7 -0
  156. package/dist/data/mathdemo/function/ease_out_bounce.mcfunction +6 -0
  157. package/dist/data/mathdemo/function/ease_out_bounce__merge_1.mcfunction +4 -0
  158. package/dist/data/mathdemo/function/ease_out_bounce__merge_4.mcfunction +4 -0
  159. package/dist/data/mathdemo/function/ease_out_bounce__merge_7.mcfunction +15 -0
  160. package/dist/data/mathdemo/function/ease_out_bounce__then_0.mcfunction +11 -0
  161. package/dist/data/mathdemo/function/ease_out_bounce__then_3.mcfunction +15 -0
  162. package/dist/data/mathdemo/function/ease_out_bounce__then_6.mcfunction +15 -0
  163. package/dist/data/mathdemo/function/ease_out_cubic.mcfunction +16 -0
  164. package/dist/data/mathdemo/function/ease_out_cubic__const_5000.mcfunction +14 -0
  165. package/dist/data/mathdemo/function/ease_out_expo.mcfunction +5 -0
  166. package/dist/data/mathdemo/function/ease_out_expo__merge_1.mcfunction +8 -0
  167. package/dist/data/mathdemo/function/ease_out_expo__then_0.mcfunction +2 -0
  168. package/dist/data/mathdemo/function/ease_out_quad.mcfunction +11 -0
  169. package/dist/data/mathdemo/function/ease_out_quart.mcfunction +16 -0
  170. package/dist/data/mathdemo/function/ease_out_sine.mcfunction +9 -0
  171. package/dist/data/mathdemo/function/ease_smooth.mcfunction +23 -0
  172. package/dist/data/mathdemo/function/ease_smoother.mcfunction +41 -0
  173. package/dist/data/mathdemo/function/exp_fx.mcfunction +16 -0
  174. package/dist/data/mathdemo/function/exp_fx__loop_body_10.mcfunction +8 -0
  175. package/dist/data/mathdemo/function/exp_fx__loop_body_5.mcfunction +8 -0
  176. package/dist/data/mathdemo/function/exp_fx__loop_exit_11.mcfunction +1 -0
  177. package/dist/data/mathdemo/function/exp_fx__loop_exit_6.mcfunction +1 -0
  178. package/dist/data/mathdemo/function/exp_fx__loop_header_4.mcfunction +3 -0
  179. package/dist/data/mathdemo/function/exp_fx__loop_header_9.mcfunction +3 -0
  180. package/dist/data/mathdemo/function/exp_fx__merge_1.mcfunction +47 -0
  181. package/dist/data/mathdemo/function/exp_fx__merge_3.mcfunction +4 -0
  182. package/dist/data/mathdemo/function/exp_fx__merge_8.mcfunction +1 -0
  183. package/dist/data/mathdemo/function/exp_fx__then_0.mcfunction +7 -0
  184. package/dist/data/mathdemo/function/exp_fx__then_2.mcfunction +2 -0
  185. package/dist/data/mathdemo/function/exp_fx__then_7.mcfunction +5 -0
  186. package/dist/data/mathdemo/function/factorial.mcfunction +5 -0
  187. package/dist/data/mathdemo/function/factorial__loop_body_4.mcfunction +7 -0
  188. package/dist/data/mathdemo/function/factorial__loop_exit_5.mcfunction +1 -0
  189. package/dist/data/mathdemo/function/factorial__loop_header_3.mcfunction +3 -0
  190. package/dist/data/mathdemo/function/factorial__merge_1.mcfunction +3 -0
  191. package/dist/data/mathdemo/function/factorial__then_0.mcfunction +2 -0
  192. package/dist/data/mathdemo/function/fbm_1d.mcfunction +9 -0
  193. package/dist/data/mathdemo/function/fbm_1d__loop_body_1.mcfunction +33 -0
  194. package/dist/data/mathdemo/function/fbm_1d__loop_exit_2.mcfunction +4 -0
  195. package/dist/data/mathdemo/function/fbm_1d__loop_header_0.mcfunction +3 -0
  196. package/dist/data/mathdemo/function/fbm_1d__merge_4.mcfunction +6 -0
  197. package/dist/data/mathdemo/function/fbm_1d__then_3.mcfunction +2 -0
  198. package/dist/data/mathdemo/function/fbm_2d.mcfunction +10 -0
  199. package/dist/data/mathdemo/function/fbm_2d__loop_body_1.mcfunction +39 -0
  200. package/dist/data/mathdemo/function/fbm_2d__loop_exit_2.mcfunction +4 -0
  201. package/dist/data/mathdemo/function/fbm_2d__loop_header_0.mcfunction +3 -0
  202. package/dist/data/mathdemo/function/fbm_2d__merge_4.mcfunction +6 -0
  203. package/dist/data/mathdemo/function/fbm_2d__then_3.mcfunction +2 -0
  204. package/dist/data/mathdemo/function/friction_decel.mcfunction +5 -0
  205. package/dist/data/mathdemo/function/friction_decel__merge_1.mcfunction +5 -0
  206. package/dist/data/mathdemo/function/friction_decel__merge_4.mcfunction +2 -0
  207. package/dist/data/mathdemo/function/friction_decel__then_0.mcfunction +3 -0
  208. package/dist/data/mathdemo/function/friction_decel__then_3.mcfunction +3 -0
  209. package/dist/data/mathdemo/function/gamma_int.mcfunction +5 -0
  210. package/dist/data/mathdemo/function/gamma_int__merge_1.mcfunction +6 -0
  211. package/dist/data/mathdemo/function/gamma_int__then_0.mcfunction +2 -0
  212. package/dist/data/mathdemo/function/gcd.mcfunction +7 -0
  213. package/dist/data/mathdemo/function/gcd__loop_body_5.mcfunction +5 -0
  214. package/dist/data/mathdemo/function/gcd__loop_exit_6.mcfunction +1 -0
  215. package/dist/data/mathdemo/function/gcd__loop_header_4.mcfunction +4 -0
  216. package/dist/data/mathdemo/function/gcd__merge_1.mcfunction +5 -0
  217. package/dist/data/mathdemo/function/gcd__merge_3.mcfunction +1 -0
  218. package/dist/data/mathdemo/function/gcd__then_0.mcfunction +4 -0
  219. package/dist/data/mathdemo/function/gcd__then_2.mcfunction +4 -0
  220. package/dist/data/mathdemo/function/gravity_fx.mcfunction +2 -0
  221. package/dist/data/mathdemo/function/hash_1d.mcfunction +15 -0
  222. package/dist/data/mathdemo/function/hash_1d_pos.mcfunction +9 -0
  223. package/dist/data/mathdemo/function/hash_1d_pos__merge_1.mcfunction +4 -0
  224. package/dist/data/mathdemo/function/hash_1d_pos__then_0.mcfunction +4 -0
  225. package/dist/data/mathdemo/function/hash_2d.mcfunction +11 -0
  226. package/dist/data/mathdemo/function/hash_2d_pos.mcfunction +11 -0
  227. package/dist/data/mathdemo/function/hash_2d_pos__merge_1.mcfunction +4 -0
  228. package/dist/data/mathdemo/function/hash_2d_pos__then_0.mcfunction +4 -0
  229. package/dist/data/mathdemo/function/impact_velocity.mcfunction +5 -0
  230. package/dist/data/mathdemo/function/impact_velocity__merge_1.mcfunction +16 -0
  231. package/dist/data/mathdemo/function/impact_velocity__then_0.mcfunction +2 -0
  232. package/dist/data/mathdemo/function/is_grounded.mcfunction +5 -0
  233. package/dist/data/mathdemo/function/is_grounded__merge_1.mcfunction +2 -0
  234. package/dist/data/mathdemo/function/is_grounded__then_0.mcfunction +2 -0
  235. package/dist/data/mathdemo/function/isqrt.mcfunction +5 -0
  236. package/dist/data/mathdemo/function/isqrt__loop_body_10.mcfunction +8 -0
  237. package/dist/data/mathdemo/function/isqrt__loop_body_13.mcfunction +11 -0
  238. package/dist/data/mathdemo/function/isqrt__loop_body_7.mcfunction +8 -0
  239. package/dist/data/mathdemo/function/isqrt__loop_exit_11.mcfunction +2 -0
  240. package/dist/data/mathdemo/function/isqrt__loop_exit_14.mcfunction +1 -0
  241. package/dist/data/mathdemo/function/isqrt__loop_exit_8.mcfunction +9 -0
  242. package/dist/data/mathdemo/function/isqrt__loop_header_12.mcfunction +4 -0
  243. package/dist/data/mathdemo/function/isqrt__loop_header_6.mcfunction +4 -0
  244. package/dist/data/mathdemo/function/isqrt__loop_header_9.mcfunction +3 -0
  245. package/dist/data/mathdemo/function/isqrt__merge_1.mcfunction +4 -0
  246. package/dist/data/mathdemo/function/isqrt__merge_16.mcfunction +5 -0
  247. package/dist/data/mathdemo/function/isqrt__merge_4.mcfunction +3 -0
  248. package/dist/data/mathdemo/function/isqrt__then_0.mcfunction +2 -0
  249. package/dist/data/mathdemo/function/isqrt__then_15.mcfunction +1 -0
  250. package/dist/data/mathdemo/function/isqrt__then_3.mcfunction +2 -0
  251. package/dist/data/mathdemo/function/lcm.mcfunction +11 -0
  252. package/dist/data/mathdemo/function/lcm__merge_1.mcfunction +5 -0
  253. package/dist/data/mathdemo/function/lcm__then_0.mcfunction +2 -0
  254. package/dist/data/mathdemo/function/length2d_fixed.mcfunction +15 -0
  255. package/dist/data/mathdemo/function/length3d_fixed.mcfunction +20 -0
  256. package/dist/data/mathdemo/function/lerp.mcfunction +13 -0
  257. package/dist/data/mathdemo/function/lerp2d_x.mcfunction +13 -0
  258. package/dist/data/mathdemo/function/lerp2d_y.mcfunction +13 -0
  259. package/dist/data/mathdemo/function/ln.mcfunction +9 -0
  260. package/dist/data/mathdemo/function/ln__loop_body_1.mcfunction +8 -0
  261. package/dist/data/mathdemo/function/ln__loop_body_4.mcfunction +8 -0
  262. package/dist/data/mathdemo/function/ln__loop_exit_2.mcfunction +1 -0
  263. package/dist/data/mathdemo/function/ln__loop_exit_5.mcfunction +37 -0
  264. package/dist/data/mathdemo/function/ln__loop_header_0.mcfunction +3 -0
  265. package/dist/data/mathdemo/function/ln__loop_header_3.mcfunction +6 -0
  266. package/dist/data/mathdemo/function/load.mcfunction +1 -0
  267. package/dist/data/mathdemo/function/log10_fx.mcfunction +11 -0
  268. package/dist/data/mathdemo/function/log2_fx.mcfunction +11 -0
  269. package/dist/data/mathdemo/function/log2_int.mcfunction +5 -0
  270. package/dist/data/mathdemo/function/log2_int__loop_body_4.mcfunction +8 -0
  271. package/dist/data/mathdemo/function/log2_int__loop_exit_5.mcfunction +1 -0
  272. package/dist/data/mathdemo/function/log2_int__loop_header_3.mcfunction +4 -0
  273. package/dist/data/mathdemo/function/log2_int__merge_1.mcfunction +3 -0
  274. package/dist/data/mathdemo/function/log2_int__then_0.mcfunction +2 -0
  275. package/dist/data/mathdemo/function/loga_fx.mcfunction +10 -0
  276. package/dist/data/mathdemo/function/loga_fx__merge_1.mcfunction +9 -0
  277. package/dist/data/mathdemo/function/loga_fx__then_0.mcfunction +2 -0
  278. package/dist/data/mathdemo/function/manhattan.mcfunction +14 -0
  279. package/dist/data/mathdemo/function/manhattan3d.mcfunction +19 -0
  280. package/dist/data/mathdemo/function/manhattan3d__merge_1.mcfunction +4 -0
  281. package/dist/data/mathdemo/function/manhattan3d__merge_3.mcfunction +4 -0
  282. package/dist/data/mathdemo/function/manhattan3d__merge_5.mcfunction +5 -0
  283. package/dist/data/mathdemo/function/manhattan3d__then_0.mcfunction +4 -0
  284. package/dist/data/mathdemo/function/manhattan3d__then_2.mcfunction +4 -0
  285. package/dist/data/mathdemo/function/manhattan3d__then_4.mcfunction +4 -0
  286. package/dist/data/mathdemo/function/manhattan__merge_1.mcfunction +4 -0
  287. package/dist/data/mathdemo/function/manhattan__merge_3.mcfunction +3 -0
  288. package/dist/data/mathdemo/function/manhattan__then_0.mcfunction +4 -0
  289. package/dist/data/mathdemo/function/manhattan__then_2.mcfunction +4 -0
  290. package/dist/data/mathdemo/function/map.mcfunction +12 -0
  291. package/dist/data/mathdemo/function/map__merge_1.mcfunction +11 -0
  292. package/dist/data/mathdemo/function/map__then_0.mcfunction +1 -0
  293. package/dist/data/mathdemo/function/mulfix.mcfunction +8 -0
  294. package/dist/data/mathdemo/function/neg2d_x.mcfunction +4 -0
  295. package/dist/data/mathdemo/function/neg2d_y.mcfunction +4 -0
  296. package/dist/data/mathdemo/function/neg3d_x.mcfunction +4 -0
  297. package/dist/data/mathdemo/function/neg3d_y.mcfunction +4 -0
  298. package/dist/data/mathdemo/function/neg3d_z.mcfunction +4 -0
  299. package/dist/data/mathdemo/function/normalize2d_x.mcfunction +11 -0
  300. package/dist/data/mathdemo/function/normalize2d_x__merge_1.mcfunction +6 -0
  301. package/dist/data/mathdemo/function/normalize2d_x__then_0.mcfunction +2 -0
  302. package/dist/data/mathdemo/function/normalize2d_y.mcfunction +11 -0
  303. package/dist/data/mathdemo/function/normalize2d_y__merge_1.mcfunction +6 -0
  304. package/dist/data/mathdemo/function/normalize2d_y__then_0.mcfunction +2 -0
  305. package/dist/data/mathdemo/function/pow_int.mcfunction +6 -0
  306. package/dist/data/mathdemo/function/pow_int__loop_body_4.mcfunction +7 -0
  307. package/dist/data/mathdemo/function/pow_int__loop_exit_5.mcfunction +1 -0
  308. package/dist/data/mathdemo/function/pow_int__loop_header_3.mcfunction +4 -0
  309. package/dist/data/mathdemo/function/pow_int__merge_1.mcfunction +4 -0
  310. package/dist/data/mathdemo/function/pow_int__merge_7.mcfunction +8 -0
  311. package/dist/data/mathdemo/function/pow_int__then_0.mcfunction +2 -0
  312. package/dist/data/mathdemo/function/pow_int__then_6.mcfunction +4 -0
  313. package/dist/data/mathdemo/function/projectile_land_t.mcfunction +5 -0
  314. package/dist/data/mathdemo/function/projectile_land_t__merge_1.mcfunction +7 -0
  315. package/dist/data/mathdemo/function/projectile_land_t__then_0.mcfunction +2 -0
  316. package/dist/data/mathdemo/function/projectile_max_height.mcfunction +10 -0
  317. package/dist/data/mathdemo/function/projectile_max_height__const_200.mcfunction +8 -0
  318. package/dist/data/mathdemo/function/projectile_vy.mcfunction +9 -0
  319. package/dist/data/mathdemo/function/projectile_x.mcfunction +8 -0
  320. package/dist/data/mathdemo/function/projectile_y.mcfunction +19 -0
  321. package/dist/data/mathdemo/function/quadratic_disc.mcfunction +12 -0
  322. package/dist/data/mathdemo/function/quadratic_x1.mcfunction +7 -0
  323. package/dist/data/mathdemo/function/quadratic_x1__merge_1.mcfunction +13 -0
  324. package/dist/data/mathdemo/function/quadratic_x1__merge_4.mcfunction +15 -0
  325. package/dist/data/mathdemo/function/quadratic_x1__then_0.mcfunction +2 -0
  326. package/dist/data/mathdemo/function/quadratic_x1__then_3.mcfunction +2 -0
  327. package/dist/data/mathdemo/function/quadratic_x2.mcfunction +7 -0
  328. package/dist/data/mathdemo/function/quadratic_x2__merge_1.mcfunction +13 -0
  329. package/dist/data/mathdemo/function/quadratic_x2__merge_4.mcfunction +15 -0
  330. package/dist/data/mathdemo/function/quadratic_x2__then_0.mcfunction +2 -0
  331. package/dist/data/mathdemo/function/quadratic_x2__then_3.mcfunction +2 -0
  332. package/dist/data/mathdemo/function/rotate2d_x.mcfunction +20 -0
  333. package/dist/data/mathdemo/function/rotate2d_y.mcfunction +20 -0
  334. package/dist/data/mathdemo/function/scale2d_x.mcfunction +8 -0
  335. package/dist/data/mathdemo/function/scale2d_y.mcfunction +8 -0
  336. package/dist/data/mathdemo/function/scale3d_x.mcfunction +8 -0
  337. package/dist/data/mathdemo/function/scale3d_y.mcfunction +8 -0
  338. package/dist/data/mathdemo/function/scale3d_z.mcfunction +8 -0
  339. package/dist/data/mathdemo/function/sign.mcfunction +5 -0
  340. package/dist/data/mathdemo/function/sign__merge_1.mcfunction +4 -0
  341. package/dist/data/mathdemo/function/sign__merge_4.mcfunction +2 -0
  342. package/dist/data/mathdemo/function/sign__then_0.mcfunction +2 -0
  343. package/dist/data/mathdemo/function/sign__then_3.mcfunction +2 -0
  344. package/dist/data/mathdemo/function/sin_fixed.mcfunction +9 -0
  345. package/dist/data/mathdemo/function/sin_fixed__merge_1.mcfunction +4 -0
  346. package/dist/data/mathdemo/function/sin_fixed__merge_3.mcfunction +4 -0
  347. package/dist/data/mathdemo/function/sin_fixed__merge_6.mcfunction +4 -0
  348. package/dist/data/mathdemo/function/sin_fixed__merge_9.mcfunction +10 -0
  349. package/dist/data/mathdemo/function/sin_fixed__then_0.mcfunction +4 -0
  350. package/dist/data/mathdemo/function/sin_fixed__then_2.mcfunction +6 -0
  351. package/dist/data/mathdemo/function/sin_fixed__then_5.mcfunction +8 -0
  352. package/dist/data/mathdemo/function/sin_fixed__then_8.mcfunction +10 -0
  353. package/dist/data/mathdemo/function/smootherstep.mcfunction +10 -0
  354. package/dist/data/mathdemo/function/smootherstep__merge_1.mcfunction +12 -0
  355. package/dist/data/mathdemo/function/smootherstep__merge_4.mcfunction +4 -0
  356. package/dist/data/mathdemo/function/smootherstep__merge_6.mcfunction +27 -0
  357. package/dist/data/mathdemo/function/smootherstep__then_0.mcfunction +2 -0
  358. package/dist/data/mathdemo/function/smootherstep__then_3.mcfunction +2 -0
  359. package/dist/data/mathdemo/function/smootherstep__then_5.mcfunction +2 -0
  360. package/dist/data/mathdemo/function/smoothstep.mcfunction +10 -0
  361. package/dist/data/mathdemo/function/smoothstep__merge_1.mcfunction +12 -0
  362. package/dist/data/mathdemo/function/smoothstep__merge_4.mcfunction +4 -0
  363. package/dist/data/mathdemo/function/smoothstep__merge_6.mcfunction +15 -0
  364. package/dist/data/mathdemo/function/smoothstep__then_0.mcfunction +2 -0
  365. package/dist/data/mathdemo/function/smoothstep__then_3.mcfunction +2 -0
  366. package/dist/data/mathdemo/function/smoothstep__then_5.mcfunction +2 -0
  367. package/dist/data/mathdemo/function/solve2x2_x.mcfunction +17 -0
  368. package/dist/data/mathdemo/function/solve2x2_x__merge_1.mcfunction +12 -0
  369. package/dist/data/mathdemo/function/solve2x2_x__then_0.mcfunction +2 -0
  370. package/dist/data/mathdemo/function/solve2x2_y.mcfunction +17 -0
  371. package/dist/data/mathdemo/function/solve2x2_y__merge_1.mcfunction +12 -0
  372. package/dist/data/mathdemo/function/solve2x2_y__then_0.mcfunction +2 -0
  373. package/dist/data/mathdemo/function/spring_force.mcfunction +11 -0
  374. package/dist/data/mathdemo/function/spring_update_v.mcfunction +18 -0
  375. package/dist/data/mathdemo/function/sqrt_fixed.mcfunction +8 -0
  376. package/dist/data/mathdemo/function/sqrt_fx.mcfunction +11 -0
  377. package/dist/data/mathdemo/function/sqrt_fx__const_20000.mcfunction +8 -0
  378. package/dist/data/mathdemo/function/start.mcfunction +6 -0
  379. package/dist/data/mathdemo/function/sub2d_x.mcfunction +5 -0
  380. package/dist/data/mathdemo/function/sub2d_y.mcfunction +5 -0
  381. package/dist/data/mathdemo/function/sub3d_x.mcfunction +5 -0
  382. package/dist/data/mathdemo/function/sub3d_y.mcfunction +5 -0
  383. package/dist/data/mathdemo/function/sub3d_z.mcfunction +5 -0
  384. package/dist/data/mathdemo/function/terrain_height.mcfunction +24 -0
  385. package/dist/data/mathdemo/function/terrain_height__const_0_0_64_20.mcfunction +17 -0
  386. package/dist/data/mathdemo/function/terrain_height__const_10_5_64_20.mcfunction +17 -0
  387. package/dist/data/mathdemo/function/update_pos.mcfunction +5 -0
  388. package/dist/data/mathdemo/function/value_noise_1d.mcfunction +13 -0
  389. package/dist/data/mathdemo/function/value_noise_1d__merge_1.mcfunction +39 -0
  390. package/dist/data/mathdemo/function/value_noise_1d__then_0.mcfunction +7 -0
  391. package/dist/data/mathdemo/function/value_noise_2d.mcfunction +14 -0
  392. package/dist/data/mathdemo/function/value_noise_2d__merge_1.mcfunction +12 -0
  393. package/dist/data/mathdemo/function/value_noise_2d__merge_3.mcfunction +98 -0
  394. package/dist/data/mathdemo/function/value_noise_2d__then_0.mcfunction +7 -0
  395. package/dist/data/mathdemo/function/value_noise_2d__then_2.mcfunction +7 -0
  396. package/dist/data/mathdemo/function/water_drag_fx.mcfunction +2 -0
  397. package/dist/data/minecraft/tags/function/load.json +2 -1
  398. package/dist/data/minecraft/tags/function/tick.json +1 -1
  399. package/dist/data/test/function/__dyn_idx_test_arrays_a.mcfunction +1 -0
  400. package/dist/data/test/function/__dyn_idx_test_arrays_b.mcfunction +1 -0
  401. package/dist/data/test/function/__dyn_idx_test_arrays_c.mcfunction +1 -0
  402. package/dist/data/test/function/__dyn_idx_test_arrays_counter.mcfunction +1 -0
  403. package/dist/data/test/function/__dyn_idx_test_arrays_d.mcfunction +1 -0
  404. package/dist/data/test/function/__dyn_idx_test_arrays_e.mcfunction +1 -0
  405. package/dist/data/test/function/__dyn_idx_test_arrays_g.mcfunction +1 -0
  406. package/dist/data/test/function/__dyn_idx_test_arrays_h.mcfunction +1 -0
  407. package/dist/data/test/function/__dyn_idx_test_arrays_one.mcfunction +1 -0
  408. package/dist/data/test/function/__dyn_wrt_test_arrays_f.mcfunction +1 -0
  409. package/dist/data/test/function/__dyn_wrt_test_arrays_r.mcfunction +1 -0
  410. package/dist/data/test/function/__dyn_wrt_test_arrays_s.mcfunction +1 -0
  411. package/dist/data/test/function/_apply.mcfunction +5 -0
  412. package/dist/data/test/function/_divider.mcfunction +1 -0
  413. package/dist/data/test/function/_dump_advanced_phase.mcfunction +4 -0
  414. package/dist/data/test/function/_dump_advanced_phase__loop_body_1.mcfunction +7 -0
  415. package/dist/data/test/function/_dump_advanced_phase__loop_body_6.mcfunction +10 -0
  416. package/dist/data/test/function/_dump_advanced_phase__loop_exit_2.mcfunction +20 -0
  417. package/dist/data/test/function/_dump_advanced_phase__loop_exit_7.mcfunction +12 -0
  418. package/dist/data/test/function/_dump_advanced_phase__loop_header_0.mcfunction +4 -0
  419. package/dist/data/test/function/_dump_advanced_phase__loop_header_5.mcfunction +4 -0
  420. package/dist/data/test/function/_dump_advanced_phase__merge_4.mcfunction +4 -0
  421. package/dist/data/test/function/_dump_advanced_phase__then_3.mcfunction +2 -0
  422. package/dist/data/test/function/_dump_bigint_phase.mcfunction +28 -0
  423. package/dist/data/test/function/_dump_math_phase.mcfunction +4 -0
  424. package/dist/data/test/function/_dump_math_phase__loop_body_1.mcfunction +9 -0
  425. package/dist/data/test/function/_dump_math_phase__loop_exit_2.mcfunction +18 -0
  426. package/dist/data/test/function/_dump_math_phase__loop_header_0.mcfunction +4 -0
  427. package/dist/data/test/function/_fp.mcfunction +2 -0
  428. package/dist/data/test/function/_next_phase.mcfunction +1 -0
  429. package/dist/data/test/function/_section.mcfunction +3 -0
  430. package/dist/data/test/function/_section__const_0.mcfunction +3 -0
  431. package/dist/data/test/function/_tick_advanced_live.mcfunction +5 -0
  432. package/dist/data/test/function/_tick_advanced_live__foreach_t12.mcfunction +1 -0
  433. package/dist/data/test/function/_tick_bigint_live.mcfunction +8 -0
  434. package/dist/data/test/function/_tick_bigint_live__foreach_t11.mcfunction +1 -0
  435. package/dist/data/test/function/_tick_math.mcfunction +9 -0
  436. package/dist/data/test/function/_tick_math__foreach_t12.mcfunction +1 -0
  437. package/dist/data/test/function/_tick_visual.mcfunction +11 -0
  438. package/dist/data/test/function/_tick_visual__foreach_t12.mcfunction +1 -0
  439. package/dist/data/test/function/_tick_visual__foreach_t16.mcfunction +8 -0
  440. package/dist/data/test/function/_tick_visual__foreach_t17.mcfunction +8 -0
  441. package/dist/data/test/function/_tick_visual__foreach_t21.mcfunction +1 -0
  442. package/dist/data/test/function/air_drag_fx.mcfunction +2 -0
  443. package/dist/data/test/function/angle_between.mcfunction +28 -0
  444. package/dist/data/test/function/angle_between__and_false_2.mcfunction +2 -0
  445. package/dist/data/test/function/angle_between__and_false_8.mcfunction +2 -0
  446. package/dist/data/test/function/angle_between__and_merge_1.mcfunction +2 -0
  447. package/dist/data/test/function/angle_between__and_merge_7.mcfunction +2 -0
  448. package/dist/data/test/function/angle_between__and_right_0.mcfunction +4 -0
  449. package/dist/data/test/function/angle_between__and_right_6.mcfunction +4 -0
  450. package/dist/data/test/function/angle_between__merge_10.mcfunction +26 -0
  451. package/dist/data/test/function/angle_between__merge_4.mcfunction +4 -0
  452. package/dist/data/test/function/angle_between__then_3.mcfunction +2 -0
  453. package/dist/data/test/function/angle_between__then_9.mcfunction +2 -0
  454. package/dist/data/test/function/apply_drag.mcfunction +8 -0
  455. package/dist/data/test/function/apply_gravity.mcfunction +6 -0
  456. package/dist/data/test/function/approx_eq.mcfunction +1 -2
  457. package/dist/data/test/function/approx_eq__merge_1.mcfunction +1 -2
  458. package/dist/data/test/function/atan2_fixed.mcfunction +1 -2
  459. package/dist/data/test/function/atan2_fixed__loop_body_26.mcfunction +1 -2
  460. package/dist/data/test/function/atan2_fixed__loop_exit_27.mcfunction +1 -2
  461. package/dist/data/test/function/atan2_fixed__loop_header_25.mcfunction +1 -2
  462. package/dist/data/test/function/atan2_fixed__merge_1.mcfunction +1 -2
  463. package/dist/data/test/function/atan2_fixed__merge_10.mcfunction +1 -2
  464. package/dist/data/test/function/atan2_fixed__merge_16.mcfunction +1 -2
  465. package/dist/data/test/function/atan2_fixed__merge_18.mcfunction +1 -2
  466. package/dist/data/test/function/atan2_fixed__merge_20.mcfunction +1 -2
  467. package/dist/data/test/function/atan2_fixed__merge_22.mcfunction +1 -2
  468. package/dist/data/test/function/atan2_fixed__merge_3.mcfunction +1 -2
  469. package/dist/data/test/function/atan2_fixed__merge_32.mcfunction +1 -2
  470. package/dist/data/test/function/atan2_fixed__merge_34.mcfunction +1 -2
  471. package/dist/data/test/function/atan2_fixed__then_0.mcfunction +1 -2
  472. package/dist/data/test/function/atan2_fixed__then_33.mcfunction +1 -2
  473. package/dist/data/test/function/atan2_fixed__then_9.mcfunction +1 -2
  474. package/dist/data/test/function/bezier_cubic.mcfunction +36 -0
  475. package/dist/data/test/function/bezier_quad.mcfunction +20 -0
  476. package/dist/data/test/function/bigint3_borrow_lo.mcfunction +1 -2
  477. package/dist/data/test/function/bigint3_borrow_mid.mcfunction +1 -2
  478. package/dist/data/test/function/bigint3_cmp.mcfunction +1 -2
  479. package/dist/data/test/function/bigint3_cmp__merge_1.mcfunction +1 -2
  480. package/dist/data/test/function/bigint3_cmp__merge_10.mcfunction +1 -2
  481. package/dist/data/test/function/bigint3_cmp__merge_13.mcfunction +1 -2
  482. package/dist/data/test/function/bigint3_cmp__merge_4.mcfunction +1 -2
  483. package/dist/data/test/function/bigint3_cmp__merge_7.mcfunction +1 -2
  484. package/dist/data/test/function/bigint3_sub_lo.mcfunction +1 -2
  485. package/dist/data/test/function/bigint3_sub_mid.mcfunction +1 -2
  486. package/dist/data/test/function/bigint_add.mcfunction +8 -0
  487. package/dist/data/test/function/bigint_add__arr_a__test_arrays__a__b__test_arrays__b__result__test_arrays__r.mcfunction +6 -0
  488. package/dist/data/test/function/bigint_add__arr_a__test_arrays__a__b__test_arrays__b__result__test_arrays__r__loop_body_1.mcfunction +22 -0
  489. package/dist/data/test/function/bigint_add__arr_a__test_arrays__a__b__test_arrays__b__result__test_arrays__r__loop_exit_2.mcfunction +1 -0
  490. package/dist/data/test/function/bigint_add__arr_a__test_arrays__a__b__test_arrays__b__result__test_arrays__r__loop_header_0.mcfunction +4 -0
  491. package/dist/data/test/function/bigint_add__arr_a__test_arrays__counter__b__test_arrays__one__result__test_arrays__r.mcfunction +6 -0
  492. package/dist/data/test/function/bigint_add__arr_a__test_arrays__counter__b__test_arrays__one__result__test_arrays__r__loop_body_1.mcfunction +22 -0
  493. package/dist/data/test/function/bigint_add__arr_a__test_arrays__counter__b__test_arrays__one__result__test_arrays__r__loop_exit_2.mcfunction +1 -0
  494. package/dist/data/test/function/bigint_add__arr_a__test_arrays__counter__b__test_arrays__one__result__test_arrays__r__loop_header_0.mcfunction +4 -0
  495. package/dist/data/test/function/bigint_add__loop_body_1.mcfunction +12 -0
  496. package/dist/data/test/function/bigint_add__loop_exit_2.mcfunction +1 -0
  497. package/dist/data/test/function/bigint_add__loop_header_0.mcfunction +4 -0
  498. package/dist/data/test/function/bigint_cmp.mcfunction +5 -0
  499. package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h.mcfunction +3 -0
  500. package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__loop_body_1.mcfunction +7 -0
  501. package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__loop_exit_2.mcfunction +2 -0
  502. package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__loop_header_0.mcfunction +3 -0
  503. package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__merge_4.mcfunction +7 -0
  504. package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__merge_7.mcfunction +4 -0
  505. package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__then_3.mcfunction +2 -0
  506. package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__then_6.mcfunction +2 -0
  507. package/dist/data/test/function/bigint_cmp__loop_body_1.mcfunction +3 -0
  508. package/dist/data/test/function/bigint_cmp__loop_exit_2.mcfunction +2 -0
  509. package/dist/data/test/function/bigint_cmp__loop_header_0.mcfunction +3 -0
  510. package/dist/data/test/function/bigint_cmp__merge_4.mcfunction +3 -0
  511. package/dist/data/test/function/bigint_cmp__merge_7.mcfunction +4 -0
  512. package/dist/data/test/function/bigint_cmp__then_3.mcfunction +2 -0
  513. package/dist/data/test/function/bigint_cmp__then_6.mcfunction +2 -0
  514. package/dist/data/test/function/bigint_copy.mcfunction +3 -0
  515. package/dist/data/test/function/bigint_copy__loop_body_1.mcfunction +4 -0
  516. package/dist/data/test/function/bigint_copy__loop_exit_2.mcfunction +1 -0
  517. package/dist/data/test/function/bigint_copy__loop_header_0.mcfunction +3 -0
  518. package/dist/data/test/function/bigint_is_zero.mcfunction +4 -0
  519. package/dist/data/test/function/bigint_is_zero__loop_body_1.mcfunction +4 -0
  520. package/dist/data/test/function/bigint_is_zero__loop_exit_2.mcfunction +2 -0
  521. package/dist/data/test/function/bigint_is_zero__loop_header_0.mcfunction +3 -0
  522. package/dist/data/test/function/bigint_is_zero__merge_4.mcfunction +4 -0
  523. package/dist/data/test/function/bigint_is_zero__then_3.mcfunction +2 -0
  524. package/dist/data/test/function/bigint_leading_zeros.mcfunction +5 -0
  525. package/dist/data/test/function/bigint_leading_zeros__loop_body_1.mcfunction +4 -0
  526. package/dist/data/test/function/bigint_leading_zeros__loop_exit_2.mcfunction +1 -0
  527. package/dist/data/test/function/bigint_leading_zeros__loop_header_0.mcfunction +3 -0
  528. package/dist/data/test/function/bigint_leading_zeros__merge_4.mcfunction +9 -0
  529. package/dist/data/test/function/bigint_leading_zeros__then_3.mcfunction +1 -0
  530. package/dist/data/test/function/bigint_mul_small.mcfunction +8 -0
  531. package/dist/data/test/function/bigint_mul_small__arr_a__test_arrays__e__result__test_arrays__f.mcfunction +7 -0
  532. package/dist/data/test/function/bigint_mul_small__arr_a__test_arrays__e__result__test_arrays__f__loop_body_1.mcfunction +20 -0
  533. package/dist/data/test/function/bigint_mul_small__arr_a__test_arrays__e__result__test_arrays__f__loop_exit_2.mcfunction +1 -0
  534. package/dist/data/test/function/bigint_mul_small__arr_a__test_arrays__e__result__test_arrays__f__loop_header_0.mcfunction +4 -0
  535. package/dist/data/test/function/bigint_mul_small__loop_body_1.mcfunction +12 -0
  536. package/dist/data/test/function/bigint_mul_small__loop_exit_2.mcfunction +1 -0
  537. package/dist/data/test/function/bigint_mul_small__loop_header_0.mcfunction +4 -0
  538. package/dist/data/test/function/bigint_shift_left.mcfunction +3 -0
  539. package/dist/data/test/function/bigint_shift_left__loop_body_1.mcfunction +4 -0
  540. package/dist/data/test/function/bigint_shift_left__loop_exit_2.mcfunction +1 -0
  541. package/dist/data/test/function/bigint_shift_left__loop_header_0.mcfunction +5 -0
  542. package/dist/data/test/function/bigint_sub.mcfunction +8 -0
  543. package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s.mcfunction +6 -0
  544. package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__loop_body_1.mcfunction +13 -0
  545. package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__loop_exit_2.mcfunction +1 -0
  546. package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__loop_header_0.mcfunction +4 -0
  547. package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__merge_4.mcfunction +4 -0
  548. package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__merge_6.mcfunction +7 -0
  549. package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__then_3.mcfunction +5 -0
  550. package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__then_5.mcfunction +2 -0
  551. package/dist/data/test/function/bigint_sub__loop_body_1.mcfunction +9 -0
  552. package/dist/data/test/function/bigint_sub__loop_exit_2.mcfunction +1 -0
  553. package/dist/data/test/function/bigint_sub__loop_header_0.mcfunction +4 -0
  554. package/dist/data/test/function/bigint_sub__merge_4.mcfunction +4 -0
  555. package/dist/data/test/function/bigint_sub__merge_6.mcfunction +4 -0
  556. package/dist/data/test/function/bigint_sub__then_3.mcfunction +5 -0
  557. package/dist/data/test/function/bigint_sub__then_5.mcfunction +2 -0
  558. package/dist/data/test/function/bigint_zero.mcfunction +3 -0
  559. package/dist/data/test/function/bigint_zero__loop_body_1.mcfunction +4 -0
  560. package/dist/data/test/function/bigint_zero__loop_exit_2.mcfunction +1 -0
  561. package/dist/data/test/function/bigint_zero__loop_header_0.mcfunction +3 -0
  562. package/dist/data/test/function/billboard_y.mcfunction +7 -0
  563. package/dist/data/test/function/bounce_v.mcfunction +10 -0
  564. package/dist/data/test/function/cbrt_fx.mcfunction +1 -2
  565. package/dist/data/test/function/cbrt_fx__loop_body_6.mcfunction +1 -2
  566. package/dist/data/test/function/cbrt_fx__loop_header_5.mcfunction +1 -2
  567. package/dist/data/test/function/cbrt_fx__merge_1.mcfunction +1 -2
  568. package/dist/data/test/function/cbrt_fx__merge_11.mcfunction +1 -2
  569. package/dist/data/test/function/cbrt_fx__merge_9.mcfunction +1 -2
  570. package/dist/data/test/function/chebyshev.mcfunction +1 -2
  571. package/dist/data/test/function/chebyshev3d.mcfunction +1 -2
  572. package/dist/data/test/function/chebyshev3d__merge_1.mcfunction +1 -2
  573. package/dist/data/test/function/chebyshev3d__merge_3.mcfunction +1 -2
  574. package/dist/data/test/function/chebyshev3d__merge_5.mcfunction +1 -2
  575. package/dist/data/test/function/chebyshev3d__merge_7.mcfunction +1 -2
  576. package/dist/data/test/function/chebyshev__merge_1.mcfunction +1 -2
  577. package/dist/data/test/function/chebyshev__merge_3.mcfunction +1 -2
  578. package/dist/data/test/function/circular_x.mcfunction +14 -0
  579. package/dist/data/test/function/circular_z.mcfunction +14 -0
  580. package/dist/data/test/function/clamp_circle_x.mcfunction +13 -0
  581. package/dist/data/test/function/clamp_circle_x__merge_1.mcfunction +10 -0
  582. package/dist/data/test/function/clamp_circle_x__then_0.mcfunction +1 -0
  583. package/dist/data/test/function/clamp_circle_y.mcfunction +13 -0
  584. package/dist/data/test/function/clamp_circle_y__merge_1.mcfunction +10 -0
  585. package/dist/data/test/function/clamp_circle_y__then_0.mcfunction +1 -0
  586. package/dist/data/test/function/clamp_velocity.mcfunction +5 -0
  587. package/dist/data/test/function/clamp_velocity__merge_1.mcfunction +5 -0
  588. package/dist/data/test/function/clamp_velocity__merge_4.mcfunction +1 -0
  589. package/dist/data/test/function/clamp_velocity__then_0.mcfunction +1 -0
  590. package/dist/data/test/function/clamp_velocity__then_3.mcfunction +3 -0
  591. package/dist/data/test/function/collatz_steps.mcfunction +5 -0
  592. package/dist/data/test/function/collatz_steps__else_8.mcfunction +6 -0
  593. package/dist/data/test/function/collatz_steps__loop_body_4.mcfunction +7 -0
  594. package/dist/data/test/function/collatz_steps__loop_exit_5.mcfunction +1 -0
  595. package/dist/data/test/function/collatz_steps__loop_header_3.mcfunction +4 -0
  596. package/dist/data/test/function/collatz_steps__merge_1.mcfunction +3 -0
  597. package/dist/data/test/function/collatz_steps__merge_7.mcfunction +4 -0
  598. package/dist/data/test/function/collatz_steps__then_0.mcfunction +2 -0
  599. package/dist/data/test/function/collatz_steps__then_6.mcfunction +5 -0
  600. package/dist/data/test/function/combinations.mcfunction +1 -2
  601. package/dist/data/test/function/combinations__loop_header_8.mcfunction +1 -2
  602. package/dist/data/test/function/combinations__merge_1.mcfunction +1 -2
  603. package/dist/data/test/function/combinations__merge_4.mcfunction +1 -2
  604. package/dist/data/test/function/cos_fixed__const_0.mcfunction +5 -0
  605. package/dist/data/test/function/count_digits.mcfunction +6 -0
  606. package/dist/data/test/function/count_digits__loop_body_6.mcfunction +8 -0
  607. package/dist/data/test/function/count_digits__loop_exit_7.mcfunction +1 -0
  608. package/dist/data/test/function/count_digits__loop_header_5.mcfunction +4 -0
  609. package/dist/data/test/function/count_digits__merge_1.mcfunction +4 -0
  610. package/dist/data/test/function/count_digits__merge_3.mcfunction +2 -0
  611. package/dist/data/test/function/count_digits__then_0.mcfunction +4 -0
  612. package/dist/data/test/function/count_digits__then_2.mcfunction +2 -0
  613. package/dist/data/test/function/debug_bigint.mcfunction +25 -0
  614. package/dist/data/test/function/digit_sum.mcfunction +6 -0
  615. package/dist/data/test/function/digit_sum__loop_body_6.mcfunction +11 -0
  616. package/dist/data/test/function/digit_sum__loop_exit_7.mcfunction +1 -0
  617. package/dist/data/test/function/digit_sum__loop_header_5.mcfunction +4 -0
  618. package/dist/data/test/function/digit_sum__merge_1.mcfunction +4 -0
  619. package/dist/data/test/function/digit_sum__merge_3.mcfunction +2 -0
  620. package/dist/data/test/function/digit_sum__then_0.mcfunction +4 -0
  621. package/dist/data/test/function/digit_sum__then_2.mcfunction +2 -0
  622. package/dist/data/test/function/digital_root.mcfunction +5 -0
  623. package/dist/data/test/function/digital_root__merge_1.mcfunction +8 -0
  624. package/dist/data/test/function/digital_root__merge_4.mcfunction +1 -0
  625. package/dist/data/test/function/digital_root__then_0.mcfunction +2 -0
  626. package/dist/data/test/function/digital_root__then_3.mcfunction +2 -0
  627. package/dist/data/test/function/divfix.mcfunction +1 -2
  628. package/dist/data/test/function/dump_advanced.mcfunction +1 -0
  629. package/dist/data/test/function/dump_bigint.mcfunction +1 -0
  630. package/dist/data/test/function/dump_math.mcfunction +1 -0
  631. package/dist/data/test/function/ease_in_back.mcfunction +26 -0
  632. package/dist/data/test/function/ease_in_bounce.mcfunction +9 -0
  633. package/dist/data/test/function/ease_in_cubic.mcfunction +12 -0
  634. package/dist/data/test/function/ease_in_expo.mcfunction +6 -0
  635. package/dist/data/test/function/ease_in_expo__merge_1.mcfunction +11 -0
  636. package/dist/data/test/function/ease_in_expo__then_0.mcfunction +2 -0
  637. package/dist/data/test/function/ease_in_out_back.mcfunction +6 -0
  638. package/dist/data/test/function/ease_in_out_back__merge_1.mcfunction +14 -0
  639. package/dist/data/test/function/ease_in_out_back__then_0.mcfunction +10 -0
  640. package/dist/data/test/function/ease_in_out_bounce.mcfunction +6 -0
  641. package/dist/data/test/function/ease_in_out_bounce__merge_1.mcfunction +14 -0
  642. package/dist/data/test/function/ease_in_out_bounce__then_0.mcfunction +10 -0
  643. package/dist/data/test/function/ease_in_out_cubic.mcfunction +6 -0
  644. package/dist/data/test/function/ease_in_out_cubic__merge_1.mcfunction +17 -0
  645. package/dist/data/test/function/ease_in_out_cubic__then_0.mcfunction +13 -0
  646. package/dist/data/test/function/ease_in_out_quad.mcfunction +6 -0
  647. package/dist/data/test/function/ease_in_out_quad__merge_1.mcfunction +12 -0
  648. package/dist/data/test/function/ease_in_out_quad__then_0.mcfunction +8 -0
  649. package/dist/data/test/function/ease_in_out_sine.mcfunction +6 -0
  650. package/dist/data/test/function/ease_in_out_sine__merge_1.mcfunction +14 -0
  651. package/dist/data/test/function/ease_in_out_sine__then_0.mcfunction +10 -0
  652. package/dist/data/test/function/ease_in_quad.mcfunction +7 -0
  653. package/dist/data/test/function/ease_in_quart.mcfunction +12 -0
  654. package/dist/data/test/function/ease_in_sine.mcfunction +30 -0
  655. package/dist/data/test/function/ease_linear.mcfunction +2 -0
  656. package/dist/data/test/function/ease_out_back.mcfunction +9 -0
  657. package/dist/data/test/function/ease_out_bounce.mcfunction +7 -0
  658. package/dist/data/test/function/ease_out_bounce__merge_1.mcfunction +5 -0
  659. package/dist/data/test/function/ease_out_bounce__merge_4.mcfunction +5 -0
  660. package/dist/data/test/function/ease_out_bounce__merge_7.mcfunction +15 -0
  661. package/dist/data/test/function/ease_out_bounce__then_0.mcfunction +11 -0
  662. package/dist/data/test/function/ease_out_bounce__then_3.mcfunction +15 -0
  663. package/dist/data/test/function/ease_out_bounce__then_6.mcfunction +15 -0
  664. package/dist/data/test/function/ease_out_cubic.mcfunction +16 -0
  665. package/dist/data/test/function/ease_out_expo.mcfunction +6 -0
  666. package/dist/data/test/function/ease_out_expo__merge_1.mcfunction +8 -0
  667. package/dist/data/test/function/ease_out_expo__then_0.mcfunction +2 -0
  668. package/dist/data/test/function/ease_out_quad.mcfunction +11 -0
  669. package/dist/data/test/function/ease_out_quart.mcfunction +16 -0
  670. package/dist/data/test/function/ease_out_sine.mcfunction +9 -0
  671. package/dist/data/test/function/ease_smooth.mcfunction +23 -0
  672. package/dist/data/test/function/ease_smoother.mcfunction +41 -0
  673. package/dist/data/test/function/exp_fx.mcfunction +1 -2
  674. package/dist/data/test/function/exp_fx__loop_header_4.mcfunction +1 -2
  675. package/dist/data/test/function/exp_fx__loop_header_9.mcfunction +1 -2
  676. package/dist/data/test/function/exp_fx__merge_1.mcfunction +1 -2
  677. package/dist/data/test/function/exp_fx__merge_3.mcfunction +1 -2
  678. package/dist/data/test/function/factorial.mcfunction +1 -2
  679. package/dist/data/test/function/factorial__loop_header_3.mcfunction +1 -2
  680. package/dist/data/test/function/fbm_1d.mcfunction +9 -0
  681. package/dist/data/test/function/fbm_1d__loop_body_1.mcfunction +33 -0
  682. package/dist/data/test/function/fbm_1d__loop_exit_2.mcfunction +5 -0
  683. package/dist/data/test/function/fbm_1d__loop_header_0.mcfunction +4 -0
  684. package/dist/data/test/function/fbm_1d__merge_4.mcfunction +6 -0
  685. package/dist/data/test/function/fbm_1d__then_3.mcfunction +2 -0
  686. package/dist/data/test/function/fbm_2d.mcfunction +10 -0
  687. package/dist/data/test/function/fbm_2d__loop_body_1.mcfunction +39 -0
  688. package/dist/data/test/function/fbm_2d__loop_exit_2.mcfunction +5 -0
  689. package/dist/data/test/function/fbm_2d__loop_header_0.mcfunction +4 -0
  690. package/dist/data/test/function/fbm_2d__merge_4.mcfunction +6 -0
  691. package/dist/data/test/function/fbm_2d__then_3.mcfunction +2 -0
  692. package/dist/data/test/function/fib.mcfunction +5 -0
  693. package/dist/data/test/function/fib__loop_body_7.mcfunction +8 -0
  694. package/dist/data/test/function/fib__loop_exit_8.mcfunction +1 -0
  695. package/dist/data/test/function/fib__loop_header_6.mcfunction +3 -0
  696. package/dist/data/test/function/fib__merge_1.mcfunction +4 -0
  697. package/dist/data/test/function/fib__merge_4.mcfunction +4 -0
  698. package/dist/data/test/function/fib__then_0.mcfunction +2 -0
  699. package/dist/data/test/function/fib__then_3.mcfunction +2 -0
  700. package/dist/data/test/function/friction_decel.mcfunction +5 -0
  701. package/dist/data/test/function/friction_decel__merge_1.mcfunction +5 -0
  702. package/dist/data/test/function/friction_decel__merge_4.mcfunction +2 -0
  703. package/dist/data/test/function/friction_decel__then_0.mcfunction +3 -0
  704. package/dist/data/test/function/friction_decel__then_3.mcfunction +3 -0
  705. package/dist/data/test/function/gamma_int.mcfunction +1 -2
  706. package/dist/data/test/function/gcd.mcfunction +1 -2
  707. package/dist/data/test/function/gcd__loop_header_4.mcfunction +1 -2
  708. package/dist/data/test/function/gcd__merge_1.mcfunction +1 -2
  709. package/dist/data/test/function/gravity_fx.mcfunction +2 -0
  710. package/dist/data/test/function/hash_1d.mcfunction +15 -0
  711. package/dist/data/test/function/hash_1d_pos.mcfunction +10 -0
  712. package/dist/data/test/function/hash_1d_pos__merge_1.mcfunction +4 -0
  713. package/dist/data/test/function/hash_1d_pos__then_0.mcfunction +4 -0
  714. package/dist/data/test/function/hash_2d.mcfunction +11 -0
  715. package/dist/data/test/function/hash_2d_pos.mcfunction +12 -0
  716. package/dist/data/test/function/hash_2d_pos__merge_1.mcfunction +4 -0
  717. package/dist/data/test/function/hash_2d_pos__then_0.mcfunction +4 -0
  718. package/dist/data/test/function/hash_int.mcfunction +6 -0
  719. package/dist/data/test/function/hash_int__merge_1.mcfunction +14 -0
  720. package/dist/data/test/function/hash_int__merge_3.mcfunction +14 -0
  721. package/dist/data/test/function/hash_int__merge_5.mcfunction +1 -0
  722. package/dist/data/test/function/hash_int__then_0.mcfunction +4 -0
  723. package/dist/data/test/function/hash_int__then_2.mcfunction +4 -0
  724. package/dist/data/test/function/hash_int__then_4.mcfunction +4 -0
  725. package/dist/data/test/function/impact_velocity.mcfunction +5 -0
  726. package/dist/data/test/function/impact_velocity__merge_1.mcfunction +16 -0
  727. package/dist/data/test/function/impact_velocity__then_0.mcfunction +2 -0
  728. package/dist/data/test/function/int32_to_bigint3_hi.mcfunction +1 -2
  729. package/dist/data/test/function/int32_to_bigint3_lo.mcfunction +1 -2
  730. package/dist/data/test/function/int32_to_bigint3_mid.mcfunction +1 -2
  731. package/dist/data/test/function/is_grounded.mcfunction +5 -0
  732. package/dist/data/test/function/is_grounded__merge_1.mcfunction +2 -0
  733. package/dist/data/test/function/is_grounded__then_0.mcfunction +2 -0
  734. package/dist/data/test/function/is_prime.mcfunction +5 -0
  735. package/dist/data/test/function/is_prime__loop_body_10.mcfunction +6 -0
  736. package/dist/data/test/function/is_prime__loop_exit_11.mcfunction +2 -0
  737. package/dist/data/test/function/is_prime__loop_header_9.mcfunction +5 -0
  738. package/dist/data/test/function/is_prime__merge_1.mcfunction +4 -0
  739. package/dist/data/test/function/is_prime__merge_13.mcfunction +4 -0
  740. package/dist/data/test/function/is_prime__merge_4.mcfunction +7 -0
  741. package/dist/data/test/function/is_prime__merge_7.mcfunction +2 -0
  742. package/dist/data/test/function/is_prime__then_0.mcfunction +2 -0
  743. package/dist/data/test/function/is_prime__then_12.mcfunction +2 -0
  744. package/dist/data/test/function/is_prime__then_3.mcfunction +2 -0
  745. package/dist/data/test/function/is_prime__then_6.mcfunction +2 -0
  746. package/dist/data/test/function/isqrt.mcfunction +1 -2
  747. package/dist/data/test/function/isqrt__loop_body_13.mcfunction +1 -2
  748. package/dist/data/test/function/isqrt__loop_header_12.mcfunction +1 -2
  749. package/dist/data/test/function/isqrt__loop_header_6.mcfunction +1 -2
  750. package/dist/data/test/function/isqrt__loop_header_9.mcfunction +1 -2
  751. package/dist/data/test/function/isqrt__merge_1.mcfunction +1 -2
  752. package/dist/data/test/function/julia_iter.mcfunction +9 -0
  753. package/dist/data/test/function/julia_iter__loop_body_1.mcfunction +36 -0
  754. package/dist/data/test/function/julia_iter__loop_exit_2.mcfunction +1 -0
  755. package/dist/data/test/function/julia_iter__loop_header_0.mcfunction +3 -0
  756. package/dist/data/test/function/julia_iter__merge_4.mcfunction +4 -0
  757. package/dist/data/test/function/julia_iter__then_3.mcfunction +1 -0
  758. package/dist/data/test/function/lambda_demo.mcfunction +2 -0
  759. package/dist/data/test/function/lcm.mcfunction +1 -2
  760. package/dist/data/test/function/lerp_angle.mcfunction +7 -0
  761. package/dist/data/test/function/lerp_angle__loop_body_1.mcfunction +4 -0
  762. package/dist/data/test/function/lerp_angle__loop_body_4.mcfunction +4 -0
  763. package/dist/data/test/function/lerp_angle__loop_exit_2.mcfunction +1 -0
  764. package/dist/data/test/function/lerp_angle__loop_exit_5.mcfunction +8 -0
  765. package/dist/data/test/function/lerp_angle__loop_header_0.mcfunction +4 -0
  766. package/dist/data/test/function/lerp_angle__loop_header_3.mcfunction +3 -0
  767. package/dist/data/test/function/ln__loop_header_0.mcfunction +1 -2
  768. package/dist/data/test/function/ln__loop_header_3.mcfunction +1 -2
  769. package/dist/data/test/function/log2_int.mcfunction +1 -2
  770. package/dist/data/test/function/log2_int__loop_header_3.mcfunction +1 -2
  771. package/dist/data/test/function/loga_fx.mcfunction +1 -2
  772. package/dist/data/test/function/mandelbrot_iter.mcfunction +7 -0
  773. package/dist/data/test/function/mandelbrot_iter__loop_body_1.mcfunction +36 -0
  774. package/dist/data/test/function/mandelbrot_iter__loop_exit_2.mcfunction +1 -0
  775. package/dist/data/test/function/mandelbrot_iter__loop_header_0.mcfunction +3 -0
  776. package/dist/data/test/function/mandelbrot_iter__merge_4.mcfunction +4 -0
  777. package/dist/data/test/function/mandelbrot_iter__then_3.mcfunction +1 -0
  778. package/dist/data/test/function/manhattan.mcfunction +1 -2
  779. package/dist/data/test/function/manhattan3d.mcfunction +1 -2
  780. package/dist/data/test/function/manhattan3d__merge_1.mcfunction +1 -2
  781. package/dist/data/test/function/manhattan3d__merge_3.mcfunction +1 -2
  782. package/dist/data/test/function/manhattan__merge_1.mcfunction +1 -2
  783. package/dist/data/test/function/map.mcfunction +1 -2
  784. package/dist/data/test/function/mod_pow.mcfunction +7 -0
  785. package/dist/data/test/function/mod_pow__loop_body_6.mcfunction +7 -0
  786. package/dist/data/test/function/mod_pow__loop_exit_7.mcfunction +1 -0
  787. package/dist/data/test/function/mod_pow__loop_header_5.mcfunction +4 -0
  788. package/dist/data/test/function/mod_pow__merge_1.mcfunction +8 -0
  789. package/dist/data/test/function/mod_pow__merge_4.mcfunction +2 -0
  790. package/dist/data/test/function/mod_pow__merge_9.mcfunction +10 -0
  791. package/dist/data/test/function/mod_pow__then_0.mcfunction +2 -0
  792. package/dist/data/test/function/mod_pow__then_3.mcfunction +4 -0
  793. package/dist/data/test/function/mod_pow__then_8.mcfunction +6 -0
  794. package/dist/data/test/function/newton_sqrt.mcfunction +5 -0
  795. package/dist/data/test/function/newton_sqrt__loop_body_7.mcfunction +10 -0
  796. package/dist/data/test/function/newton_sqrt__loop_exit_8.mcfunction +1 -0
  797. package/dist/data/test/function/newton_sqrt__loop_header_6.mcfunction +3 -0
  798. package/dist/data/test/function/newton_sqrt__merge_1.mcfunction +4 -0
  799. package/dist/data/test/function/newton_sqrt__merge_4.mcfunction +6 -0
  800. package/dist/data/test/function/newton_sqrt__then_0.mcfunction +2 -0
  801. package/dist/data/test/function/newton_sqrt__then_3.mcfunction +2 -0
  802. package/dist/data/test/function/noise1d.mcfunction +13 -0
  803. package/dist/data/test/function/noise1d__merge_1.mcfunction +20 -0
  804. package/dist/data/test/function/noise1d__merge_3.mcfunction +4 -0
  805. package/dist/data/test/function/noise1d__merge_5.mcfunction +11 -0
  806. package/dist/data/test/function/noise1d__then_0.mcfunction +7 -0
  807. package/dist/data/test/function/noise1d__then_2.mcfunction +4 -0
  808. package/dist/data/test/function/noise1d__then_4.mcfunction +4 -0
  809. package/dist/data/test/function/normalize2d_x.mcfunction +1 -2
  810. package/dist/data/test/function/normalize2d_y.mcfunction +1 -2
  811. package/dist/data/test/function/pow_int.mcfunction +1 -2
  812. package/dist/data/test/function/pow_int__loop_body_4.mcfunction +1 -2
  813. package/dist/data/test/function/pow_int__loop_header_3.mcfunction +1 -2
  814. package/dist/data/test/function/projectile_land_t.mcfunction +5 -0
  815. package/dist/data/test/function/projectile_land_t__merge_1.mcfunction +7 -0
  816. package/dist/data/test/function/projectile_land_t__then_0.mcfunction +2 -0
  817. package/dist/data/test/function/projectile_max_height.mcfunction +10 -0
  818. package/dist/data/test/function/projectile_vy.mcfunction +9 -0
  819. package/dist/data/test/function/projectile_x.mcfunction +8 -0
  820. package/dist/data/test/function/projectile_y.mcfunction +19 -0
  821. package/dist/data/test/function/ptimer/new.mcfunction +3 -0
  822. package/dist/data/test/function/ptimer/reset.mcfunction +1 -0
  823. package/dist/data/test/function/ptimer/tick.mcfunction +8 -0
  824. package/dist/data/test/function/ptimer/tick__merge_1.mcfunction +2 -0
  825. package/dist/data/test/function/ptimer/tick__then_0.mcfunction +3 -0
  826. package/dist/data/test/function/quadratic_x1.mcfunction +1 -2
  827. package/dist/data/test/function/quadratic_x1__merge_1.mcfunction +1 -2
  828. package/dist/data/test/function/quadratic_x2.mcfunction +1 -2
  829. package/dist/data/test/function/quadratic_x2__merge_1.mcfunction +1 -2
  830. package/dist/data/test/function/quat_cos_half.mcfunction +8 -0
  831. package/dist/data/test/function/quat_sin_half.mcfunction +8 -0
  832. package/dist/data/test/function/reverse_int.mcfunction +7 -0
  833. package/dist/data/test/function/reverse_int__loop_body_3.mcfunction +14 -0
  834. package/dist/data/test/function/reverse_int__loop_exit_4.mcfunction +4 -0
  835. package/dist/data/test/function/reverse_int__loop_header_2.mcfunction +4 -0
  836. package/dist/data/test/function/reverse_int__merge_1.mcfunction +2 -0
  837. package/dist/data/test/function/reverse_int__merge_6.mcfunction +1 -0
  838. package/dist/data/test/function/reverse_int__then_0.mcfunction +5 -0
  839. package/dist/data/test/function/reverse_int__then_5.mcfunction +3 -0
  840. package/dist/data/test/function/rotate_x_y.mcfunction +28 -0
  841. package/dist/data/test/function/rotate_x_z.mcfunction +28 -0
  842. package/dist/data/test/function/rotate_y_x.mcfunction +28 -0
  843. package/dist/data/test/function/rotate_y_z.mcfunction +30 -0
  844. package/dist/data/test/function/scale_x.mcfunction +8 -0
  845. package/dist/data/test/function/scale_y.mcfunction +8 -0
  846. package/dist/data/test/function/scale_z.mcfunction +8 -0
  847. package/dist/data/test/function/showcase_load.mcfunction +4 -0
  848. package/dist/data/test/function/showcase_tick.mcfunction +1 -0
  849. package/dist/data/test/function/sign.mcfunction +1 -2
  850. package/dist/data/test/function/sign__merge_1.mcfunction +1 -2
  851. package/dist/data/test/function/sin_fixed.mcfunction +1 -2
  852. package/dist/data/test/function/sin_fixed__merge_1.mcfunction +1 -2
  853. package/dist/data/test/function/sin_fixed__merge_3.mcfunction +1 -2
  854. package/dist/data/test/function/sin_fixed__merge_6.mcfunction +1 -2
  855. package/dist/data/test/function/smootherstep.mcfunction +1 -2
  856. package/dist/data/test/function/smootherstep__merge_1.mcfunction +1 -2
  857. package/dist/data/test/function/smootherstep__merge_4.mcfunction +1 -2
  858. package/dist/data/test/function/smoothstep.mcfunction +1 -2
  859. package/dist/data/test/function/smoothstep__merge_1.mcfunction +1 -2
  860. package/dist/data/test/function/smoothstep__merge_4.mcfunction +1 -2
  861. package/dist/data/test/function/solve2x2_x.mcfunction +1 -2
  862. package/dist/data/test/function/solve2x2_y.mcfunction +1 -2
  863. package/dist/data/test/function/spiral_ring.mcfunction +5 -0
  864. package/dist/data/test/function/spiral_ring__merge_1.mcfunction +13 -0
  865. package/dist/data/test/function/spiral_ring__then_0.mcfunction +2 -0
  866. package/dist/data/test/function/spring_force.mcfunction +11 -0
  867. package/dist/data/test/function/spring_update_v.mcfunction +18 -0
  868. package/dist/data/test/function/start.mcfunction +8 -0
  869. package/dist/data/test/function/stop.mcfunction +2 -0
  870. package/dist/data/test/function/stop__foreach_t0.mcfunction +1 -0
  871. package/dist/data/test/function/terrain_height.mcfunction +24 -0
  872. package/dist/data/test/function/uniform_scale.mcfunction +8 -0
  873. package/dist/data/test/function/update_pos.mcfunction +5 -0
  874. package/dist/data/test/function/value_noise_1d.mcfunction +14 -0
  875. package/dist/data/test/function/value_noise_1d__merge_1.mcfunction +39 -0
  876. package/dist/data/test/function/value_noise_1d__then_0.mcfunction +7 -0
  877. package/dist/data/test/function/value_noise_2d.mcfunction +15 -0
  878. package/dist/data/test/function/value_noise_2d__merge_1.mcfunction +13 -0
  879. package/dist/data/test/function/value_noise_2d__merge_3.mcfunction +98 -0
  880. package/dist/data/test/function/value_noise_2d__then_0.mcfunction +7 -0
  881. package/dist/data/test/function/value_noise_2d__then_2.mcfunction +7 -0
  882. package/dist/data/test/function/water_drag_fx.mcfunction +2 -0
  883. package/dist/pack.mcmeta +1 -1
  884. package/dist/src/__tests__/optimizer/lir/peephole.test.js +92 -0
  885. package/dist/src/ast/types.d.ts +7 -0
  886. package/dist/src/hir/lower.js +51 -0
  887. package/dist/src/optimizer/lir/peephole.d.ts +13 -4
  888. package/dist/src/optimizer/lir/peephole.js +44 -5
  889. package/dist/src/parser/index.js +12 -0
  890. package/editors/vscode/package-lock.json +3 -3
  891. package/editors/vscode/package.json +1 -1
  892. package/examples/math-demo.mcrs +127 -0
  893. package/examples/showcase.mcrs +64 -109
  894. package/package.json +1 -1
  895. package/src/__tests__/e2e/for-in-array.test.ts +62 -0
  896. package/src/__tests__/optimizer/lir/peephole.test.ts +100 -0
  897. package/src/ast/types.ts +1 -0
  898. package/src/hir/lower.ts +52 -0
  899. package/src/optimizer/lir/peephole.ts +50 -5
  900. package/src/parser/index.ts +13 -0
  901. package/src/stdlib/bigint.mcrs +128 -100
  902. package/src/stdlib/easing.mcrs +182 -0
  903. package/src/stdlib/matrix.mcrs +108 -0
  904. package/src/stdlib/noise.mcrs +153 -0
  905. package/src/stdlib/physics.mcrs +134 -0
@@ -174,6 +174,57 @@ function lowerStmt(stmt) {
174
174
  };
175
175
  return [initStmt, whileStmt];
176
176
  }
177
+ // --- Desugaring: for_in_array → let idx = 0; while(idx < len) { let v = arr[idx]; body; idx = idx + 1 } ---
178
+ case 'for_in_array': {
179
+ const idxName = `__forin_idx_${stmt.binding}`;
180
+ const initStmt = {
181
+ kind: 'let',
182
+ name: idxName,
183
+ type: { kind: 'named', name: 'int' },
184
+ init: { kind: 'int_lit', value: 0 },
185
+ span: stmt.span,
186
+ };
187
+ const bindingInit = {
188
+ kind: 'let',
189
+ name: stmt.binding,
190
+ type: undefined,
191
+ init: {
192
+ kind: 'index',
193
+ obj: { kind: 'ident', name: stmt.arrayName },
194
+ index: { kind: 'ident', name: idxName },
195
+ },
196
+ span: stmt.span,
197
+ };
198
+ const stepStmt = {
199
+ kind: 'expr',
200
+ expr: {
201
+ kind: 'assign',
202
+ target: idxName,
203
+ value: {
204
+ kind: 'binary',
205
+ op: '+',
206
+ left: { kind: 'ident', name: idxName },
207
+ right: { kind: 'int_lit', value: 1 },
208
+ },
209
+ },
210
+ span: stmt.span,
211
+ };
212
+ const body = [bindingInit, ...lowerBlock(stmt.body)];
213
+ const step = [stepStmt];
214
+ const whileStmt = {
215
+ kind: 'while',
216
+ cond: {
217
+ kind: 'binary',
218
+ op: '<',
219
+ left: { kind: 'ident', name: idxName },
220
+ right: lowerExpr(stmt.lenExpr),
221
+ },
222
+ body,
223
+ step,
224
+ span: stmt.span,
225
+ };
226
+ return [initStmt, whileStmt];
227
+ }
177
228
  case 'foreach':
178
229
  return {
179
230
  kind: 'foreach',
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Execute-Store Peephole Pass — LIR optimization pass.
3
3
  *
4
- * Merges a `call_context` immediately followed by `score_set(dst, value)`
4
+ * Pattern 1: Merges a `call_context` immediately followed by `score_set(dst, value)`
5
5
  * into a single `store_cmd_to_score` instruction:
6
6
  *
7
7
  * execute [subcommands] run function ns:fn ← call_context
@@ -11,11 +11,20 @@
11
11
  *
12
12
  * execute store result score $result __ns [subcommands] run function ns:fn
13
13
  *
14
- * This saves one command when the caller only needs to know whether the
15
- * execute chain ran (success = 1) or to capture the function's return value.
14
+ * Pattern 2: Merges a `score_set(dst, 0)` immediately followed by a `raw` command
15
+ * of the form `execute <cond> run scoreboard players set $dst __ns 1`:
16
+ *
17
+ * scoreboard players set $dst __ns 0 ← score_set(dst, 0)
18
+ * execute <cond> run scoreboard players set $dst __ns 1 ← raw
19
+ *
20
+ * becomes:
21
+ *
22
+ * execute store success score $dst __ns <cond>
23
+ *
24
+ * This saves one command per boolean comparison (cmp instruction lowering).
16
25
  *
17
26
  * Safety: only merges when the two instructions are immediately adjacent
18
- * (no instructions between them).
27
+ * (no instructions between them) and the destination slot is identical.
19
28
  */
20
29
  import type { LIRFunction } from '../../lir/types';
21
30
  export declare function execStorePeephole(fn: LIRFunction): LIRFunction;
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Execute-Store Peephole Pass — LIR optimization pass.
4
4
  *
5
- * Merges a `call_context` immediately followed by `score_set(dst, value)`
5
+ * Pattern 1: Merges a `call_context` immediately followed by `score_set(dst, value)`
6
6
  * into a single `store_cmd_to_score` instruction:
7
7
  *
8
8
  * execute [subcommands] run function ns:fn ← call_context
@@ -12,14 +12,33 @@
12
12
  *
13
13
  * execute store result score $result __ns [subcommands] run function ns:fn
14
14
  *
15
- * This saves one command when the caller only needs to know whether the
16
- * execute chain ran (success = 1) or to capture the function's return value.
15
+ * Pattern 2: Merges a `score_set(dst, 0)` immediately followed by a `raw` command
16
+ * of the form `execute <cond> run scoreboard players set $dst __ns 1`:
17
+ *
18
+ * scoreboard players set $dst __ns 0 ← score_set(dst, 0)
19
+ * execute <cond> run scoreboard players set $dst __ns 1 ← raw
20
+ *
21
+ * becomes:
22
+ *
23
+ * execute store success score $dst __ns <cond>
24
+ *
25
+ * This saves one command per boolean comparison (cmp instruction lowering).
17
26
  *
18
27
  * Safety: only merges when the two instructions are immediately adjacent
19
- * (no instructions between them).
28
+ * (no instructions between them) and the destination slot is identical.
20
29
  */
21
30
  Object.defineProperty(exports, "__esModule", { value: true });
22
31
  exports.execStorePeephole = execStorePeephole;
32
+ /**
33
+ * Regex for Pattern 2's second instruction:
34
+ * execute (if|unless) score ... run scoreboard players set $X OBJ 1
35
+ *
36
+ * Captures:
37
+ * [1] the full condition part (everything before " run scoreboard ...")
38
+ * [2] the destination player ($X)
39
+ * [3] the destination objective
40
+ */
41
+ const SET_ZERO_SET_ONE_RE = /^execute (.+) run scoreboard players set (\S+) (\S+) 1$/;
23
42
  function execStorePeephole(fn) {
24
43
  const instrs = fn.instructions;
25
44
  if (instrs.length < 2)
@@ -30,7 +49,7 @@ function execStorePeephole(fn) {
30
49
  while (i < instrs.length) {
31
50
  const curr = instrs[i];
32
51
  const next = instrs[i + 1];
33
- // Pattern: call_context immediately followed by score_set
52
+ // Pattern 1: call_context immediately followed by score_set
34
53
  if (next &&
35
54
  curr.kind === 'call_context' &&
36
55
  next.kind === 'score_set') {
@@ -44,6 +63,26 @@ function execStorePeephole(fn) {
44
63
  i += 2;
45
64
  continue;
46
65
  }
66
+ // Pattern 2: score_set(dst, 0) + raw("execute <cond> run scoreboard players set $dst OBJ 1")
67
+ // → raw("execute store success score $dst OBJ <cond>")
68
+ if (next &&
69
+ curr.kind === 'score_set' &&
70
+ curr.value === 0 &&
71
+ next.kind === 'raw') {
72
+ const m = SET_ZERO_SET_ONE_RE.exec(next.cmd);
73
+ if (m &&
74
+ m[2] === curr.dst.player &&
75
+ m[3] === curr.dst.obj) {
76
+ const cond = m[1];
77
+ result.push({
78
+ kind: 'raw',
79
+ cmd: `execute store success score ${curr.dst.player} ${curr.dst.obj} ${cond}`,
80
+ });
81
+ changed = true;
82
+ i += 2;
83
+ continue;
84
+ }
85
+ }
47
86
  result.push(curr);
48
87
  i++;
49
88
  }
@@ -721,6 +721,18 @@ class Parser {
721
721
  return this.parseForRangeStmt(forToken);
722
722
  }
723
723
  this.expect('(');
724
+ // Detect for-in-array syntax: for ( let ident in ident , lenExpr ) { ... }
725
+ if (this.check('let') && this.peek(1).kind === 'ident' && this.peek(2).kind === 'in' && this.peek(3).kind === 'ident' && this.peek(4).kind === ',') {
726
+ this.advance(); // consume 'let'
727
+ const binding = this.expect('ident').value;
728
+ this.expect('in');
729
+ const arrayName = this.expect('ident').value;
730
+ this.expect(',');
731
+ const lenExpr = this.parseExpr();
732
+ this.expect(')');
733
+ const body = this.parseBlock();
734
+ return this.withLoc({ kind: 'for_in_array', binding, arrayName, lenExpr, body }, forToken);
735
+ }
724
736
  // Init: either let statement (without semicolon) or empty
725
737
  let init;
726
738
  if (this.check('let')) {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "redscript-vscode",
3
- "version": "1.2.36",
3
+ "version": "1.2.42",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "redscript-vscode",
9
- "version": "1.2.36",
9
+ "version": "1.2.42",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "redscript": "file:../../",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "../..": {
26
26
  "name": "redscript-mc",
27
- "version": "2.4.0",
27
+ "version": "2.4.1",
28
28
  "license": "MIT",
29
29
  "dependencies": {
30
30
  "vscode-languageserver": "^9.0.1",
@@ -2,7 +2,7 @@
2
2
  "name": "redscript-vscode",
3
3
  "displayName": "RedScript for Minecraft",
4
4
  "description": "Syntax highlighting, error diagnostics, and language support for RedScript — a compiler targeting Minecraft Java Edition",
5
- "version": "1.2.36",
5
+ "version": "1.2.42",
6
6
  "publisher": "bkmashiro",
7
7
  "icon": "icon.png",
8
8
  "license": "MIT",
@@ -0,0 +1,127 @@
1
+ // math-demo.mcrs — Showcase of RedScript stdlib: math, easing, noise, physics
2
+ //
3
+ // Run:
4
+ // redscript compile examples/math-demo.mcrs --namespace mathdemo -o <datapack>
5
+ // In game: /function mathdemo:start
6
+
7
+ import "../src/stdlib/math.mcrs"
8
+ import "../src/stdlib/easing.mcrs"
9
+ import "../src/stdlib/noise.mcrs"
10
+ import "../src/stdlib/physics.mcrs"
11
+ import "../src/stdlib/vec.mcrs"
12
+
13
+ // ─── Load ──────────────────────────────────────────────────────────────────────
14
+
15
+ @load fn __load() {
16
+ scoreboard_add("mathdemo");
17
+ }
18
+
19
+ // ─── Math functions demo ───────────────────────────────────────────────────────
20
+
21
+ @keep fn demo_math() {
22
+ // Fixed-point math (×10000 scale)
23
+ let x: int = 20000; // 2.0
24
+
25
+ let l: int = ln(x); // ln(2.0) ≈ 6931
26
+ let s: int = sqrt_fx(x); // √2.0 ≈ 14142
27
+ let e: int = exp_fx(x); // e^2.0 ≈ 73891
28
+
29
+ say(f"§e-- Math Demo --");
30
+ say(f"ln(2.0) = {l} [expect 6931]");
31
+ say(f"sqrt(2.0) = {s} [expect 14142]");
32
+ say(f"exp(2.0) = {e} [expect 73891]");
33
+
34
+ let c: int = combinations(10, 3); // C(10,3) = 120
35
+ let f: int = factorial(6); // 6! = 720
36
+ say(f"C(10,3) = {c} [expect 120]");
37
+ say(f"6! = {f} [expect 720]");
38
+ }
39
+
40
+ // ─── Easing demo ──────────────────────────────────────────────────────────────
41
+
42
+ @keep fn demo_easing() {
43
+ say(f"§e-- Easing Demo (t=5000 = midpoint) --");
44
+ let t: int = 5000; // t = 0.5 (midpoint of animation)
45
+
46
+ let lin: int = ease_linear(t);
47
+ let quad: int = ease_in_quad(t);
48
+ let cubic: int = ease_out_cubic(t);
49
+ let bounce: int = ease_out_bounce(t);
50
+ let back: int = ease_out_back(t);
51
+
52
+ say(f"linear: {lin} [expect 5000]");
53
+ say(f"in_quad: {quad} [expect 2500]");
54
+ say(f"out_cubic: {cubic} [expect 8750]");
55
+ say(f"out_bounce: {bounce}");
56
+ say(f"out_back: {back}");
57
+ }
58
+
59
+ // ─── Noise demo ───────────────────────────────────────────────────────────────
60
+
61
+ @keep fn demo_noise() {
62
+ say(f"§e-- Noise Demo --");
63
+
64
+ // 1D value noise at a few positions
65
+ let n0: int = value_noise_1d(0);
66
+ let n1: int = value_noise_1d(25000); // x = 2.5
67
+ let n2: int = value_noise_1d(50000); // x = 5.0
68
+
69
+ say(f"noise1d(0.0) = {n0}");
70
+ say(f"noise1d(2.5) = {n1}");
71
+ say(f"noise1d(5.0) = {n2}");
72
+
73
+ // FBM terrain height
74
+ let h1: int = terrain_height(0, 0, 64, 20);
75
+ let h2: int = terrain_height(10, 5, 64, 20);
76
+ say(f"terrain(0,0) = {h1} blocks [base 64, amp 20]");
77
+ say(f"terrain(10,5) = {h2} blocks");
78
+ }
79
+
80
+ // ─── Physics demo ─────────────────────────────────────────────────────────────
81
+
82
+ @keep fn demo_physics() {
83
+ say(f"§e-- Physics Demo --");
84
+
85
+ // Projectile: launched up with v0y = 200 (2.0 blocks/tick)
86
+ let v0y: int = 200;
87
+ let t_land: int = projectile_land_t(v0y);
88
+ let max_h: int = projectile_max_height(v0y);
89
+
90
+ say(f"Arrow launch: v0y={v0y} (2.0 bl/tick)");
91
+ say(f" Land time: {t_land} ticks [expect 50 ticks = 2.5 sec]");
92
+ say(f" Max height: {max_h} units = {max_h / 100} blocks");
93
+
94
+ // Simulate first 5 ticks
95
+ say(f" Y position (×100):");
96
+ let y: int = 0;
97
+ let t: int = 0;
98
+ while (t < 5) {
99
+ y = projectile_y(0, v0y, t);
100
+ say(f" t={t}: y={y}");
101
+ t = t + 1;
102
+ }
103
+
104
+ // Spring: mass at 0, target at 10000, k=3000, damping=9500
105
+ say(f"Spring simulation (k=0.3, damp=0.95):");
106
+ let pos: int = 0;
107
+ let vel: int = 0;
108
+ let target: int = 10000;
109
+ let step: int = 0;
110
+ while (step < 5) {
111
+ vel = spring_update_v(vel, pos, target, 3000, 9500);
112
+ pos = update_pos(pos, vel);
113
+ say(f" step={step}: pos={pos} vel={vel}");
114
+ step = step + 1;
115
+ }
116
+ }
117
+
118
+ // ─── Start (runs all demos) ────────────────────────────────────────────────────
119
+
120
+ @keep fn start() {
121
+ say(f"§6=== RedScript stdlib Math Demo ===");
122
+ demo_math();
123
+ demo_easing();
124
+ demo_noise();
125
+ demo_physics();
126
+ say(f"§6=== Done ===");
127
+ }
@@ -195,69 +195,47 @@ fn _tick_math() {
195
195
  // ── Phase 2: BigInt ───────────────────────────────────────────────────────
196
196
 
197
197
  fn _dump_bigint_phase() {
198
- _section("BigInt — 32-Digit Arbitrary Precision");
199
-
200
- say("§eFibonacci sequence (BigInt, base-10000 limbs):");
201
-
202
- // Small Fibonacci fits in single limb
203
- let i: int = 0;
204
- while (i <= 20) {
205
- bigint_fib(i);
206
- let v: int = bigint_get_a(0);
207
- say(f" F({i}) = {v}");
208
- i = i + 5;
209
- }
210
-
211
- // F(50) = 12,586,269,025 (3 limbs)
212
- bigint_fib(50);
213
- let f50_2: int = bigint_get_a(2);
214
- let f50_1: int = bigint_get_a(1);
215
- let f50_0: int = bigint_get_a(0);
216
- say(f" F(50) = {f50_2}_{f50_1}_{f50_0} [= 12,586,269,025]");
217
-
218
- // F(100) = 354,224,848,179,261,915,075 (6 limbs)
219
- bigint_fib(100);
220
- let f100_5: int = bigint_get_a(5);
221
- let f100_4: int = bigint_get_a(4);
222
- let f100_3: int = bigint_get_a(3);
223
- let f100_2: int = bigint_get_a(2);
224
- let f100_1: int = bigint_get_a(1);
225
- let f100_0: int = bigint_get_a(0);
226
- say(f" F(100)= {f100_5}_{f100_4}_{f100_3}_{f100_2}_{f100_1}_{f100_0}");
227
- say(f" [= 354,224,848,179,261,915,075]");
228
-
229
- // BigInt multiplication: 999999999 × 999999999
230
- say("§eBigInt Multiply:");
231
- bigint_init();
232
- bigint_from_int_a(999999999);
233
- bigint_from_int_b(999999999);
234
- bigint_mul();
235
- let m2: int = bigint_get_c(2);
236
- let m1: int = bigint_get_c(1);
237
- let m0: int = bigint_get_c(0);
238
- say(f" 999999999² = {m2}_{m1}_{m0}");
239
- say(f" [= 999999998_000000001]");
240
-
241
- // BigInt subtract
242
- say("§eBigInt Subtract:");
243
- bigint_init();
244
- bigint_from_int_a(1000000000);
245
- bigint_from_int_b(1);
246
- bigint_sub();
247
- let s0: int = bigint_get_c(0);
248
- let s1: int = bigint_get_c(1);
249
- say(f" 1,000,000,000 - 1 = {s1}_{s0} [= 999999999]");
198
+ _section("BigInt — Arbitrary Precision (base-10000 arrays)");
199
+
200
+ say("§eBigInt add: [9999,9999] + [0,1] = [1,0,0]");
201
+ // 9999_9999 + 1 = 1_0000_0000 (overflow into next chunk)
202
+ let a: int[] = [9999, 9999];
203
+ let b: int[] = [0, 1];
204
+ let r: int[] = [0, 0];
205
+ let carry: int = bigint_add(a, b, r, 2);
206
+ say(f" carry={carry} result=[{r[0]},{r[1]}] [expect carry=1 result=[0,0]]");
207
+
208
+ say("§eBigInt sub: [1,0] - [0,1] = [0,9999]");
209
+ // 1_0000 - 1 = 9999
210
+ let c: int[] = [1, 0];
211
+ let d: int[] = [0, 1];
212
+ let s: int[] = [0, 0];
213
+ bigint_sub(c, d, s, 2);
214
+ say(f" result=[{s[0]},{s[1]}] [expect [0,9999]]");
215
+
216
+ say("§eBigInt mul_small: [1,2345] × 3");
217
+ // 1_2345 × 3 = 3_7035
218
+ let e: int[] = [1, 2345];
219
+ let f: int[] = [0, 0];
220
+ bigint_mul_small(e, 3, f, 2);
221
+ say(f" result=[{f[0]},{f[1]}] [expect [3,7035]]");
222
+
223
+ say("§eBigInt cmp: [1,0] > [0,9999]");
224
+ let g: int[] = [1, 0];
225
+ let h: int[] = [0, 9999];
226
+ let cmp_result: int = bigint_cmp(g, h, 2);
227
+ say(f" cmp={cmp_result} [expect 1 (greater)]");
250
228
  }
251
229
 
252
230
  fn _tick_bigint_live() {
253
- // Show incremental Fibonacci on actionbar
254
- if (state.tick % 10 == 0) {
255
- let n: int = (state.tick / 10) % 30;
256
- bigint_fib(n);
257
- let v0: int = bigint_get_a(0);
258
- let v1: int = bigint_get_a(1);
231
+ // Show counter with bigint add on actionbar
232
+ if (state.tick % 20 == 0) {
233
+ let counter: int[] = [0, state.tick / 20];
234
+ let one: int[] = [0, 1];
235
+ let r: int[] = [0, 0];
236
+ let carry: int = bigint_add(counter, one, r, 2);
259
237
  foreach (p in @a[limit=1]) {
260
- actionbar(p, f"§dF({n}) limb[1]={v1} limb[0]={v0}");
238
+ actionbar(p, f"§dBigInt tick: [{r[0]},{r[1]}] carry={carry}");
261
239
  }
262
240
  }
263
241
  }
@@ -436,56 +414,33 @@ fn dump_advanced() {
436
414
  // ── BigInt step-by-step debug ─────────────────────────────────────────────
437
415
  // /function showcase:debug_bigint
438
416
  fn debug_bigint() {
439
- say("§e=== BigInt Debug ===");
440
-
441
- // Step 0: check scoreboard objective 'rs' exists (set by __load)
442
- // If this reads 0, __load hasn't run — do /reload first!
443
- scoreboard_set("__dbgcheck", #rs, 9999);
444
- let rs_check: int = scoreboard_get("__dbgcheck", #rs);
445
- say(f"§7[0] rs-objective check={rs_check} (expect 9999; if 0 → run /reload first!)");
446
-
447
- // Step 1: init
448
- bigint_init();
449
- say("§7[1] bigint_init() done");
450
-
451
- // Step 2: from_int_a (STATIC index writes, no macro)
452
- bigint_from_int_a(12345);
453
- // 2a: static read (data get storage rs:bigint a[0] — NO macro)
454
- let direct0: int = storage_get_int("rs:bigint", "a", 0);
455
- let direct1: int = storage_get_int("rs:bigint", "a", 1);
456
- say(f"§7[2a] static-read a[0]={direct0} a[1]={direct1} (expect 2345,1)");
457
- // 2b: macro read (bigint_get_a uses macro sub-function)
458
- let a0: int = bigint_get_a(0);
459
- let a1: int = bigint_get_a(1);
460
- say(f"§7[2b] macro-read a[0]={a0} a[1]={a1} (expect 2345,1)");
461
-
462
- // Step 3: fib(1) = 1 (no carry, simplest case)
463
- bigint_fib(1);
464
- let f1: int = bigint_get_a(0);
465
- say(f"§7[3] fib(1) get_a(0)={f1} (expect 1)");
466
-
467
- // Step 4: fib(5) = 5
468
- bigint_fib(5);
469
- let f5: int = bigint_get_a(0);
470
- say(f"§7[4] fib(5) → get_a(0)={f5} (expect 5)");
471
-
472
- // Step 5: fib(10) = 55
473
- bigint_fib(10);
474
- let f10: int = bigint_get_a(0);
475
- say(f"§7[5] fib(10) → get_a(0)={f10} (expect 55)");
476
-
477
- // Step 6: fib(20) = 6765
478
- bigint_fib(20);
479
- let f20: int = bigint_get_a(0);
480
- say(f"§7[6] fib(20) → get_a(0)={f20} (expect 6765)");
481
-
482
- // Step 7: manual add — bigint_add() writes via __ssi macro
483
- bigint_init();
484
- bigint_from_int_a(1);
485
- bigint_from_int_b(1);
486
- bigint_add();
487
- let c0: int = bigint_get_c(0);
488
- say(f"§7[7] 1+1=? get_c(0)={c0} (expect 2)");
417
+ say("§e=== BigInt Debug (v2.4+ array-by-ref API) ===");
418
+
419
+ // Test 1: add with carry
420
+ let a: int[] = [9999, 9999];
421
+ let b: int[] = [0, 1];
422
+ let r: int[] = [0, 0];
423
+ let carry: int = bigint_add(a, b, r, 2);
424
+ say(f"§7[1] 9999_9999 + 1: carry={carry} r=[{r[0]},{r[1]}] (expect carry=1 r=[0,0])");
425
+
426
+ // Test 2: subtract
427
+ let c: int[] = [1, 0];
428
+ let d: int[] = [0, 1];
429
+ let s: int[] = [0, 0];
430
+ bigint_sub(c, d, s, 2);
431
+ say(f"§7[2] 1_0000 - 1: s=[{s[0]},{s[1]}] (expect [0,9999])");
432
+
433
+ // Test 3: mul_small
434
+ let e: int[] = [1, 2345];
435
+ let f: int[] = [0, 0];
436
+ bigint_mul_small(e, 3, f, 2);
437
+ say(f"§7[3] 1_2345 × 3: f=[{f[0]},{f[1]}] (expect [3,7035])");
438
+
439
+ // Test 4: compare
440
+ let g: int[] = [1, 0];
441
+ let h: int[] = [0, 9999];
442
+ let cmp: int = bigint_cmp(g, h, 2);
443
+ say(f"§7[4] [1,0] vs [0,9999]: cmp={cmp} (expect 1 = greater)");
489
444
 
490
445
  say("§a=== Done ===");
491
446
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redscript-mc",
3
- "version": "2.4.1",
3
+ "version": "2.5.0",
4
4
  "description": "A high-level programming language that compiles to Minecraft datapacks",
5
5
  "main": "dist/src/index.js",
6
6
  "bin": {
@@ -0,0 +1,62 @@
1
+ /**
2
+ * E2E tests for the `for (let v in arr, len)` syntax sugar.
3
+ */
4
+
5
+ import { compile } from '../../emit/compile'
6
+
7
+ function getFiles(files: { path: string; content: string }[]): string {
8
+ return files.map(f => f.content).join('\n')
9
+ }
10
+
11
+ describe('e2e: for-in-array syntax sugar', () => {
12
+ test('for in array basic compiles without error', () => {
13
+ const src = `
14
+ @keep fn test() {
15
+ let nums: int[] = [10, 20, 30];
16
+ let len: int = 3;
17
+ for (let v in nums, len) {
18
+ scoreboard_add("#sum", "test", v);
19
+ }
20
+ }
21
+ `
22
+ expect(() => compile(src, { namespace: 'test' })).not.toThrow()
23
+ })
24
+
25
+ test('for in array generates dynamic index access (with storage)', () => {
26
+ const src = `
27
+ @keep fn test() {
28
+ let nums: int[] = [10, 20, 30];
29
+ let len: int = 3;
30
+ for (let v in nums, len) {
31
+ scoreboard_add("#sum", "test", v);
32
+ }
33
+ }
34
+ `
35
+ const result = compile(src, { namespace: 'test' })
36
+ const allContent = getFiles(result.files)
37
+ expect(allContent).toContain('with storage')
38
+ })
39
+
40
+ test('for in array with len variable compiles', () => {
41
+ const src = `
42
+ @keep fn loop_sum(arr: int[], n: int): void {
43
+ for (let item in arr, n) {
44
+ scoreboard_add("#total", "obj", item);
45
+ }
46
+ }
47
+ `
48
+ expect(() => compile(src, { namespace: 'test' })).not.toThrow()
49
+ })
50
+
51
+ test('for in array with literal len compiles', () => {
52
+ const src = `
53
+ @keep fn test() {
54
+ let data: int[] = [1, 2, 3, 4, 5];
55
+ for (let x in data, 5) {
56
+ scoreboard_add("#res", "test", x);
57
+ }
58
+ }
59
+ `
60
+ expect(() => compile(src, { namespace: 'test' })).not.toThrow()
61
+ })
62
+ })