minecraft-datapack-language 15.4.35__tar.gz → 15.4.36__tar.gz

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 (378) hide show
  1. minecraft_datapack_language-15.4.36/.mdl-out-test1/data/minecraft/tags/function/load.json +5 -0
  2. minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/load.mcfunction +7 -0
  3. minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/load1.mcfunction +3 -0
  4. minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/main.mcfunction +8 -0
  5. minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/main__else_1.mcfunction +2 -0
  6. minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/main__if_1.mcfunction +2 -0
  7. minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/testfunc.mcfunction +4 -0
  8. minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/testfunc__while_1.mcfunction +6 -0
  9. minecraft_datapack_language-15.4.36/.mdl-out-test1/pack.mcmeta +6 -0
  10. {minecraft_datapack_language-15.4.35/minecraft_datapack_language.egg-info → minecraft_datapack_language-15.4.36}/PKG-INFO +1 -1
  11. minecraft_datapack_language-15.4.36/docs/_data/version.yml +3 -0
  12. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/_version.py +3 -3
  13. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/mdl_compiler.py +73 -26
  14. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36/minecraft_datapack_language.egg-info}/PKG-INFO +1 -1
  15. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language.egg-info/SOURCES.txt +12 -0
  16. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_codegen_naming_and_logic.py +5 -6
  17. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_comprehensive_end_to_end.py +5 -2
  18. minecraft_datapack_language-15.4.36/tests/test_user_regression_test1.py +43 -0
  19. minecraft_datapack_language-15.4.36/tmp_test1.mdl +40 -0
  20. minecraft_datapack_language-15.4.36/tmp_test1.mdl~ +0 -0
  21. minecraft_datapack_language-15.4.35/docs/_data/version.yml +0 -3
  22. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.cursor/rules/aispec.mdc +0 -0
  23. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/actions/mdl-compile/action.yml +0 -0
  24. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/ci.yml +0 -0
  25. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/docs.yml +0 -0
  26. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/pypi.yml +0 -0
  27. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/release.yml +0 -0
  28. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/update-website-version.yml +0 -0
  29. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.gitignore +0 -0
  30. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/COMPILER_FIXES_SUMMARY.md +0 -0
  31. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/CONDITIONALS_IMPLEMENTATION.md +0 -0
  32. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/LICENSE +0 -0
  33. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/Makefile +0 -0
  34. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/README.md +0 -0
  35. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/advancements/diamond_sword.json +0 -0
  36. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/advancements/first_spell.json +0 -0
  37. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/advancements/other_advancement.json +0 -0
  38. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/advancements/test_advancement.json +0 -0
  39. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/comprehensive_error_test.mdl +0 -0
  40. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/complex_scopes/function/main_else_8.mcfunction +0 -0
  41. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/complex_scopes/function/main_if_8.mcfunction +0 -0
  42. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_basic_if_if_2.mcfunction +0 -0
  43. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_basic_if_if_3.mcfunction +0 -0
  44. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_basic_if_if_4.mcfunction +0 -0
  45. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_complex_if_if_2.mcfunction +0 -0
  46. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_complex_if_if_3.mcfunction +0 -0
  47. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_complex_if_if_4.mcfunction +0 -0
  48. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_complex_if_if_5.mcfunction +0 -0
  49. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_control_complex_expressions_if_2.mcfunction +0 -0
  50. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_control_complex_expressions_if_4.mcfunction +0 -0
  51. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_control_variable_substitution_if_2.mcfunction +0 -0
  52. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_control_with_raw_if_2.mcfunction +0 -0
  53. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_control_with_scopes_if_5.mcfunction +0 -0
  54. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_control_with_tellraw_else_2.mcfunction +0 -0
  55. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_control_with_tellraw_if_2.mcfunction +0 -0
  56. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_control_with_tellraw_if_4.mcfunction +0 -0
  57. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_if_else_else_2.mcfunction +0 -0
  58. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_if_else_else_3.mcfunction +0 -0
  59. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_if_else_else_4.mcfunction +0 -0
  60. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_if_else_if_2.mcfunction +0 -0
  61. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_if_else_if_3.mcfunction +0 -0
  62. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_if_else_if_4.mcfunction +0 -0
  63. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_else_2.mcfunction +0 -0
  64. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_else_3.mcfunction +0 -0
  65. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_else_3_else_0.mcfunction +0 -0
  66. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_else_3_if_0.mcfunction +0 -0
  67. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_if_2.mcfunction +0 -0
  68. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_if_2_else_0.mcfunction +0 -0
  69. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0.mcfunction +0 -0
  70. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0_else_0.mcfunction +0 -0
  71. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0_if_0.mcfunction +0 -0
  72. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_if_3.mcfunction +0 -0
  73. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_if_3_else_0.mcfunction +0 -0
  74. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/comprehensive_control_test/function/test_nested_if_if_3_if_0.mcfunction +0 -0
  75. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/control_test/function/main_if_0.mcfunction +0 -0
  76. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/control_test/function/main_while_1.mcfunction +0 -0
  77. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/control_test/function/main_while_body_1.mcfunction +0 -0
  78. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/if_test/function/main_else_1.mcfunction +0 -0
  79. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/if_test/function/main_if_1.mcfunction +0 -0
  80. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/conditional_demo_else_3.mcfunction +0 -0
  81. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/conditional_demo_if_3.mcfunction +0 -0
  82. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/conditional_demo_if_3_else_0.mcfunction +0 -0
  83. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/conditional_demo_if_3_if_0.mcfunction +0 -0
  84. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/conditional_demo_if_3_if_0_else_0.mcfunction +0 -0
  85. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/conditional_demo_if_3_if_0_if_0.mcfunction +0 -0
  86. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/countdown_while_1.mcfunction +0 -0
  87. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/countdown_while_body_1.mcfunction +0 -0
  88. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/increase_tick_per_player_if_1.mcfunction +0 -0
  89. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/increase_tick_per_player_if_1_if_0.mcfunction +0 -0
  90. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/loop_demo_while_2.mcfunction +0 -0
  91. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/loop_demo_while_body_2.mcfunction +0 -0
  92. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/loop_demo_while_body_2_else_0.mcfunction +0 -0
  93. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/loop_demo_while_body_2_if_0.mcfunction +0 -0
  94. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/loop_demo_while_body_2_if_2.mcfunction +0 -0
  95. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_else_0.mcfunction +0 -0
  96. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_else_1.mcfunction +0 -0
  97. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_else_5.mcfunction +0 -0
  98. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_if_0.mcfunction +0 -0
  99. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_if_1.mcfunction +0 -0
  100. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_if_5.mcfunction +0 -0
  101. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_0.mcfunction +0 -0
  102. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_1.mcfunction +0 -0
  103. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_2.mcfunction +0 -0
  104. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_6.mcfunction +0 -0
  105. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_7.mcfunction +0 -0
  106. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_body_0.mcfunction +0 -0
  107. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_body_1.mcfunction +0 -0
  108. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_body_2.mcfunction +0 -0
  109. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_body_6.mcfunction +0 -0
  110. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_body_7.mcfunction +0 -0
  111. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/scoreboard_demo_while_3.mcfunction +0 -0
  112. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/scoreboard_demo_while_body_3.mcfunction +0 -0
  113. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/scoreboard_demo_while_body_3_if_1.mcfunction +0 -0
  114. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/start_game_if_1.mcfunction +0 -0
  115. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/start_game_if_5.mcfunction +0 -0
  116. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/start_game_while_4.mcfunction +0 -0
  117. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/start_game_while_body_4.mcfunction +0 -0
  118. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_if_if_1.mcfunction +0 -0
  119. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_if_if_2.mcfunction +0 -0
  120. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_if_if_3.mcfunction +0 -0
  121. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_while_while_2.mcfunction +0 -0
  122. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_while_while_4.mcfunction +0 -0
  123. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_while_while_body_2.mcfunction +0 -0
  124. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_while_while_body_4.mcfunction +0 -0
  125. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_if_if_1.mcfunction +0 -0
  126. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_if_if_2.mcfunction +0 -0
  127. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_if_if_3.mcfunction +0 -0
  128. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_if_if_4.mcfunction +0 -0
  129. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_nested_control_while_2.mcfunction +0 -0
  130. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_nested_control_while_body_2.mcfunction +0 -0
  131. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_nested_control_while_body_2_else_1.mcfunction +0 -0
  132. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_nested_control_while_body_2_else_1_if_1.mcfunction +0 -0
  133. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_nested_control_while_body_2_if_1.mcfunction +0 -0
  134. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_nested_control_while_body_2_if_1_if_1.mcfunction +0 -0
  135. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_nested_control_while_body_2_if_2.mcfunction +0 -0
  136. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_scope_scenarios_if_1.mcfunction +0 -0
  137. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_scope_scenarios_if_2.mcfunction +0 -0
  138. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_scope_scenarios_if_3.mcfunction +0 -0
  139. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_scope_scenarios_if_4.mcfunction +0 -0
  140. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_while_while_3.mcfunction +0 -0
  141. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_while_while_6.mcfunction +0 -0
  142. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_while_while_body_3.mcfunction +0 -0
  143. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_while_while_body_6.mcfunction +0 -0
  144. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_complex_expressions_if_1.mcfunction +0 -0
  145. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_complex_expressions_if_3.mcfunction +0 -0
  146. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_complex_expressions_while_2.mcfunction +0 -0
  147. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_complex_expressions_while_body_2.mcfunction +0 -0
  148. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_error_handling_if_1.mcfunction +0 -0
  149. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_error_handling_if_2.mcfunction +0 -0
  150. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_error_handling_while_3.mcfunction +0 -0
  151. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_error_handling_while_body_3.mcfunction +0 -0
  152. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_2.mcfunction +0 -0
  153. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_4.mcfunction +0 -0
  154. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_body_2.mcfunction +0 -0
  155. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_body_2_if_1.mcfunction +0 -0
  156. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_body_4.mcfunction +0 -0
  157. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_body_4_while_2.mcfunction +0 -0
  158. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_body_4_while_body_2.mcfunction +0 -0
  159. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_scoped_functions_if_1.mcfunction +0 -0
  160. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_scoped_functions_if_3.mcfunction +0 -0
  161. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_scoped_functions_while_2.mcfunction +0 -0
  162. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_scoped_functions_while_body_2.mcfunction +0 -0
  163. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_variable_substitution_if_1.mcfunction +0 -0
  164. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_variable_substitution_if_3.mcfunction +0 -0
  165. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_variable_substitution_while_2.mcfunction +0 -0
  166. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_variable_substitution_while_body_2.mcfunction +0 -0
  167. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_assignments_if_1.mcfunction +0 -0
  168. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_assignments_if_3.mcfunction +0 -0
  169. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_assignments_while_2.mcfunction +0 -0
  170. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_assignments_while_body_2.mcfunction +0 -0
  171. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_functions_if_1.mcfunction +0 -0
  172. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_functions_if_3.mcfunction +0 -0
  173. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_functions_while_2.mcfunction +0 -0
  174. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_functions_while_body_2.mcfunction +0 -0
  175. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_raw_if_1.mcfunction +0 -0
  176. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_raw_while_2.mcfunction +0 -0
  177. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_raw_while_body_2.mcfunction +0 -0
  178. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_scopes_if_1.mcfunction +0 -0
  179. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_scopes_if_2.mcfunction +0 -0
  180. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_scopes_if_3.mcfunction +0 -0
  181. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_scopes_if_4.mcfunction +0 -0
  182. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_tellraw_else_1.mcfunction +0 -0
  183. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_tellraw_if_1.mcfunction +0 -0
  184. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_tellraw_if_3.mcfunction +0 -0
  185. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_tellraw_while_2.mcfunction +0 -0
  186. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_tellraw_while_body_2.mcfunction +0 -0
  187. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_else_1.mcfunction +0 -0
  188. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_else_2.mcfunction +0 -0
  189. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_else_3.mcfunction +0 -0
  190. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_if_1.mcfunction +0 -0
  191. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_if_2.mcfunction +0 -0
  192. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_if_3.mcfunction +0 -0
  193. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_main_while_0.mcfunction +0 -0
  194. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_main_while_body_0.mcfunction +0 -0
  195. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_else_1.mcfunction +0 -0
  196. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_else_2.mcfunction +0 -0
  197. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_else_2_else_0.mcfunction +0 -0
  198. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_else_2_if_0.mcfunction +0 -0
  199. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_if_1.mcfunction +0 -0
  200. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_if_1_else_0.mcfunction +0 -0
  201. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_if_1_if_0.mcfunction +0 -0
  202. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_if_1_if_0_else_0.mcfunction +0 -0
  203. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_if_1_if_0_if_0.mcfunction +0 -0
  204. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_if_2.mcfunction +0 -0
  205. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_if_2_else_0.mcfunction +0 -0
  206. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_if_2_if_0.mcfunction +0 -0
  207. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_if_1.mcfunction +0 -0
  208. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_if_2.mcfunction +0 -0
  209. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_if_3.mcfunction +0 -0
  210. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_while_4.mcfunction +0 -0
  211. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_while_5.mcfunction +0 -0
  212. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_while_body_4.mcfunction +0 -0
  213. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_while_body_5.mcfunction +0 -0
  214. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_interactions_if_1.mcfunction +0 -0
  215. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_interactions_if_2.mcfunction +0 -0
  216. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_interactions_if_3.mcfunction +0 -0
  217. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_while_break_while_2.mcfunction +0 -0
  218. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_while_break_while_body_2.mcfunction +0 -0
  219. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_while_break_while_body_2_if_1.mcfunction +0 -0
  220. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_while_break_while_body_2_if_2.mcfunction +0 -0
  221. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/tick_if_1.mcfunction +0 -0
  222. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/tick_if_2.mcfunction +0 -0
  223. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/tick_if_2_while_1.mcfunction +0 -0
  224. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/tick_if_2_while_body_1.mcfunction +0 -0
  225. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/weapon_effects_else_1.mcfunction +0 -0
  226. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/weapon_effects_if_1.mcfunction +0 -0
  227. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test_final_template_fixed/function/main_else_8.mcfunction +0 -0
  228. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test_final_template_fixed/function/main_if_8.mcfunction +0 -0
  229. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/while_test/function/main_while_0.mcfunction +0 -0
  230. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/while_test/function/main_while_body_0.mcfunction +0 -0
  231. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/dist.zip +0 -0
  232. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/.env +0 -0
  233. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/404.html +0 -0
  234. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/Gemfile +0 -0
  235. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/README.md +0 -0
  236. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_config.yml +0 -0
  237. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/cli-reference.md +0 -0
  238. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/contributing.md +0 -0
  239. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/docs-hub.md +0 -0
  240. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/documentation.md +0 -0
  241. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/examples.md +0 -0
  242. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/getting-started.md +0 -0
  243. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/language-reference.md +0 -0
  244. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/multi-file-projects.md +0 -0
  245. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/python-bindings.md +0 -0
  246. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/vscode-extension.md +0 -0
  247. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_includes/head-custom.html +0 -0
  248. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_includes/navigation.html +0 -0
  249. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_layouts/default.html +0 -0
  250. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_layouts/page.html +0 -0
  251. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_plugins/test_version.rb +0 -0
  252. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_plugins/version_reader.rb +0 -0
  253. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/assets/css/style.css +0 -0
  254. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/docs.md +0 -0
  255. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/downloads.md +0 -0
  256. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/favicon-16.png +0 -0
  257. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/favicon-32.png +0 -0
  258. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/favicon-48.png +0 -0
  259. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/favicon-64.png +0 -0
  260. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/icon-1024.png +0 -0
  261. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/icon-128.png +0 -0
  262. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/icon-256.png +0 -0
  263. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/icon-512.png +0 -0
  264. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/icon-64.png +0 -0
  265. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/index.md +0 -0
  266. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/examples/hello_world.mdl +0 -0
  267. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/examples/scope_examples.mdl +0 -0
  268. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/examples/simple_counter.mdl +0 -0
  269. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/favicon-16.png +0 -0
  270. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/favicon-32.png +0 -0
  271. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/favicon-48.png +0 -0
  272. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/favicon-64.png +0 -0
  273. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/icon-1024.png +0 -0
  274. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/icon-128.png +0 -0
  275. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/icon-256.png +0 -0
  276. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/icon-512.png +0 -0
  277. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/icon-64.png +0 -0
  278. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/item_modifiers/diamond_sword.json +0 -0
  279. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/item_modifiers/enchant_tool.json +0 -0
  280. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/item_modifiers/test_item_modifier.json +0 -0
  281. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/loot_tables/diamond_sword.json +0 -0
  282. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/loot_tables/epic_loot.json +0 -0
  283. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/loot_tables/main_loot.json +0 -0
  284. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/loot_tables/test_loot.json +0 -0
  285. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/mdllocal.sh +0 -0
  286. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/__init__.py +0 -0
  287. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/ast_nodes.py +0 -0
  288. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/cli.py +0 -0
  289. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/dir_map.py +0 -0
  290. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/mdl_errors.py +0 -0
  291. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/mdl_lexer.py +0 -0
  292. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/mdl_linter.py +0 -0
  293. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/mdl_parser.py +0 -0
  294. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/python_api.py +0 -0
  295. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/utils.py +0 -0
  296. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language.egg-info/dependency_links.txt +0 -0
  297. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language.egg-info/entry_points.txt +0 -0
  298. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language.egg-info/requires.txt +0 -0
  299. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language.egg-info/top_level.txt +0 -0
  300. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/multi_scope_example.mdl +0 -0
  301. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/my_awesome_pack/README.md +0 -0
  302. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/my_awesome_pack/minecraft_datapack_language.mdl +0 -0
  303. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/predicates/diamond_sword.json +0 -0
  304. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/predicates/has_mana.json +0 -0
  305. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/predicates/other_predicate.json +0 -0
  306. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/predicates/test_predicate.json +0 -0
  307. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/pyproject.toml +0 -0
  308. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/pytest.ini +0 -0
  309. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/custom_pickaxe.json +0 -0
  310. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/diamond_sword.json +0 -0
  311. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/first.json +0 -0
  312. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/inlet.json +0 -0
  313. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/main_recipe.json +0 -0
  314. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/outlet.json +0 -0
  315. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/pipe.json +0 -0
  316. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/second.json +0 -0
  317. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/test_recipe.json +0 -0
  318. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/wrench.json +0 -0
  319. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scope_demo.mdl +0 -0
  320. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scoreboard_test.mdl +0 -0
  321. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/UpdateMDL.sh +0 -0
  322. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/bootstrap.ps1 +0 -0
  323. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/bootstrap.sh +0 -0
  324. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/build_pkg.ps1 +0 -0
  325. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/build_pkg.sh +0 -0
  326. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/dev_build.ps1 +0 -0
  327. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/dev_build.sh +0 -0
  328. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/dev_setup.ps1 +0 -0
  329. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/dev_setup.sh +0 -0
  330. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/git-bash/bootstrap-gitbash.sh +0 -0
  331. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/git-bash/build_pkg-gitbash.sh +0 -0
  332. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/git-bash/test_cli-gitbash.sh +0 -0
  333. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/release.sh +0 -0
  334. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/test_cli.ps1 +0 -0
  335. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/test_cli.sh +0 -0
  336. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/test_dev.ps1 +0 -0
  337. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/test_dev.sh +0 -0
  338. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/update_docs.sh +0 -0
  339. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/update_version_info.sh +0 -0
  340. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/setup.cfg +0 -0
  341. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/structures/diamond_sword.json +0 -0
  342. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/structures/test_structure.json +0 -0
  343. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/structures/workshop.json +0 -0
  344. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tellraw_variables_test.mdl +0 -0
  345. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/temp_output/data/test/function/helper.mcfunction +0 -0
  346. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/temp_output/data/test/function/load.mcfunction +0 -0
  347. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/temp_output/data/test/function/main.mcfunction +0 -0
  348. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/temp_output/pack.mcmeta +0 -0
  349. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_all_registry.mdl +0 -0
  350. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_complex_scenarios.mdl +0 -0
  351. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_comprehensive_fixes.mdl +0 -0
  352. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_if_else_while.mdl +0 -0
  353. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_project/complex_test.mdl +0 -0
  354. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_simple.mdl +0 -0
  355. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/__init__.py +0 -0
  356. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/run_all_tests.py +0 -0
  357. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_cli.py +0 -0
  358. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_compiler_fixes.py +0 -0
  359. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_complex_scenarios.py +0 -0
  360. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_python_api.py +0 -0
  361. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_python_bindings.py +0 -0
  362. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/README.md +0 -0
  363. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/favicon-16.png +0 -0
  364. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/favicon-32.png +0 -0
  365. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/favicon-48.png +0 -0
  366. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/favicon-64.png +0 -0
  367. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/icon-1024.png +0 -0
  368. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/icon-128.png +0 -0
  369. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/icon-256.png +0 -0
  370. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/icon-512.png +0 -0
  371. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/language-configuration.json +0 -0
  372. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/package-lock.json +0 -0
  373. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/package.json +0 -0
  374. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/snippets/mdl.json +0 -0
  375. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/src/extension.ts +0 -0
  376. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/syntaxes/mdl.tmLanguage.json +0 -0
  377. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/themes/mdl-color-theme.json +0 -0
  378. {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/tsconfig.json +0 -0
@@ -0,0 +1,7 @@
1
+ # Load function - runs when datapack loads
2
+ # Generated by MDL Compiler
3
+
4
+ scoreboard objectives add counter dummy "counter"
5
+ scoreboard objectives add global_timer dummy "global_timer"
6
+
7
+ function test1:load1
@@ -0,0 +1,3 @@
1
+ # Function: test1:load1
2
+
3
+ tellraw @a {"text":"Datapack loaded successfully!"}
@@ -0,0 +1,8 @@
1
+ # Function: test1:main
2
+
3
+ tellraw @a {"text":"Hello from test1!"}
4
+ scoreboard players set @s counter 10
5
+ tellraw @a {"text":"Counter: ","extra":[{"score":{"name":"@s","objective":"counter"}}]}
6
+ execute if score @s counter matches 6.. run function test1:main__if_1
7
+ execute unless score @s counter matches 6.. run function test1:main__else_1
8
+ execute as @a run function test1:testfunc
@@ -0,0 +1,2 @@
1
+ # Function: test1:main__else_1
2
+ tellraw @a {"text":"Try again!"}
@@ -0,0 +1,2 @@
1
+ # Function: test1:main__if_1
2
+ tellraw @a {"text":"High counter!"}
@@ -0,0 +1,4 @@
1
+ # Function: test1:testfunc
2
+
3
+ scoreboard players set @s testfunccount1 10
4
+ function test1:testfunc__while_1
@@ -0,0 +1,6 @@
1
+ # Function: test1:testfunc__while_1
2
+ tellraw @a {"text":"Hello from testfunc!"}
3
+ scoreboard players operation @s temp_1 = @s testfunccount1
4
+ scoreboard players remove @s temp_1 1
5
+ scoreboard players operation @s testfunccount1 = @s temp_1
6
+ execute if score @s testfunccount1 matches 1.. run function test1:testfunc__while_1
@@ -0,0 +1,6 @@
1
+ {
2
+ "pack": {
3
+ "pack_format": 82,
4
+ "description": "Generated by MDL CLI"
5
+ }
6
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: minecraft-datapack-language
3
- Version: 15.4.35
3
+ Version: 15.4.36
4
4
  Summary: Compile MDL language with explicit scoping into a Minecraft datapack (1.21+ ready). Features variables, control flow, error handling, and VS Code extension.
5
5
  Project-URL: Homepage, https://www.mcmdl.com
6
6
  Project-URL: Documentation, https://www.mcmdl.com/docs
@@ -0,0 +1,3 @@
1
+ current: "15.4.35"
2
+ tag: "v15.4.35"
3
+ updated_at: "2025-09-05T06:19:22Z"
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '15.4.35'
32
- __version_tuple__ = version_tuple = (15, 4, 35)
31
+ __version__ = version = '15.4.36'
32
+ __version_tuple__ = version_tuple = (15, 4, 36)
33
33
 
34
- __commit_id__ = commit_id = 'gc1645a725'
34
+ __commit_id__ = commit_id = 'g68a65e479'
@@ -148,9 +148,9 @@ class MDLCompiler:
148
148
  lines.append(f"# Scope: {func.scope}")
149
149
  lines.append("")
150
150
 
151
- # Reset temporary commands for this function
152
- if hasattr(self, 'temp_commands'):
153
- self.temp_commands = []
151
+ # Ensure a temp-command sink stack exists
152
+ if not hasattr(self, '_temp_sink_stack'):
153
+ self._temp_sink_stack = []
154
154
 
155
155
  # Set current function context and reset per-function counters
156
156
  self._current_function_name = func.name
@@ -158,18 +158,15 @@ class MDLCompiler:
158
158
  self.else_counter = 0
159
159
  self.while_counter = 0
160
160
 
161
+ # Route temp commands into this function's body by default
162
+ self._temp_sink_stack.append(lines)
161
163
  # Generate commands from function body
162
164
  for statement in func.body:
163
165
  cmd = self._statement_to_command(statement)
164
166
  if cmd:
165
167
  lines.append(cmd)
166
-
167
- # Add any temporary commands that were generated during compilation
168
- if hasattr(self, 'temp_commands') and self.temp_commands:
169
- lines.append("")
170
- lines.append("# Temporary variable operations:")
171
- for temp_cmd in self.temp_commands:
172
- lines.append(temp_cmd)
168
+ # Done routing temp commands for this function body
169
+ self._temp_sink_stack.pop()
173
170
 
174
171
  return "\n".join(lines)
175
172
 
@@ -401,6 +398,10 @@ class MDLCompiler:
401
398
 
402
399
  # Generate the if body function content
403
400
  if_body_lines = [f"# Function: {self.current_namespace}:{if_function_name}"]
401
+ # Route temp commands to the if-body function content
402
+ if not hasattr(self, '_temp_sink_stack'):
403
+ self._temp_sink_stack = []
404
+ self._temp_sink_stack.append(if_body_lines)
404
405
  for stmt in if_stmt.then_body:
405
406
  if isinstance(stmt, VariableAssignment):
406
407
  cmd = self._variable_assignment_to_command(stmt)
@@ -419,6 +420,8 @@ class MDLCompiler:
419
420
  elif isinstance(stmt, FunctionCall):
420
421
  cmd = self._function_call_to_command(stmt)
421
422
  if_body_lines.append(cmd)
423
+ # Stop routing temp commands for if-body
424
+ self._temp_sink_stack.pop()
422
425
 
423
426
  # Handle else body if it exists
424
427
  if if_stmt.else_body:
@@ -443,6 +446,10 @@ class MDLCompiler:
443
446
  else:
444
447
  lines.append(f"execute unless {condition} run function {self.current_namespace}:{else_function_name}")
445
448
  else_body_lines = [f"# Function: {self.current_namespace}:{else_function_name}"]
449
+ # Route temp commands into the else-body
450
+ if not hasattr(self, '_temp_sink_stack'):
451
+ self._temp_sink_stack = []
452
+ self._temp_sink_stack.append(else_body_lines)
446
453
  for stmt in if_stmt.else_body:
447
454
  if isinstance(stmt, VariableAssignment):
448
455
  cmd = self._variable_assignment_to_command(stmt)
@@ -461,6 +468,8 @@ class MDLCompiler:
461
468
  elif isinstance(stmt, FunctionCall):
462
469
  cmd = self._function_call_to_command(stmt)
463
470
  else_body_lines.append(cmd)
471
+ # Stop routing temp commands for else-body
472
+ self._temp_sink_stack.pop()
464
473
  self._store_generated_function(else_function_name, else_body_lines)
465
474
 
466
475
  # Store the if function as its own file
@@ -483,6 +492,9 @@ class MDLCompiler:
483
492
  loop_body_lines = [f"# Function: {self.current_namespace}:{loop_function_name}"]
484
493
 
485
494
  # Add the loop body statements
495
+ if not hasattr(self, '_temp_sink_stack'):
496
+ self._temp_sink_stack = []
497
+ self._temp_sink_stack.append(loop_body_lines)
486
498
  for stmt in while_loop.body:
487
499
  if isinstance(stmt, VariableAssignment):
488
500
  cmd = self._variable_assignment_to_command(stmt)
@@ -505,6 +517,8 @@ class MDLCompiler:
505
517
  # Add the recursive call at the end to continue the loop
506
518
  cond_str, _inv = self._build_condition(while_loop.condition)
507
519
  loop_body_lines.append(f"execute if {cond_str} run function {self.current_namespace}:{loop_function_name}")
520
+ # Stop routing temp commands for while-body
521
+ self._temp_sink_stack.pop()
508
522
 
509
523
  # Store the loop function as its own file
510
524
  self._store_generated_function(loop_function_name, loop_body_lines)
@@ -680,10 +694,20 @@ class MDLCompiler:
680
694
  if isinstance(expression.left, BinaryExpression):
681
695
  self._store_temp_command(f"scoreboard players operation @s {temp_var} = @s {left_temp}")
682
696
  else:
683
- self._store_temp_command(f"scoreboard players set @s {temp_var} {left_value}")
684
-
685
- if isinstance(expression.right, BinaryExpression):
686
- self._store_temp_command(f"scoreboard players add @s {temp_var} {right_value}")
697
+ # Assign from left value (score or literal)
698
+ if isinstance(expression.left, VariableSubstitution) or (isinstance(expression.left, str) and str(left_value).startswith("score ")):
699
+ parts = str(left_value).split()
700
+ scope = parts[1]
701
+ obj = parts[2]
702
+ self._store_temp_command(f"scoreboard players operation @s {temp_var} = {scope} {obj}")
703
+ else:
704
+ self._store_temp_command(f"scoreboard players set @s {temp_var} {left_value}")
705
+ # Add right value
706
+ if isinstance(expression.right, VariableSubstitution) or (isinstance(expression.right, str) and str(right_value).startswith("score ")):
707
+ parts = str(right_value).split()
708
+ scope = parts[1]
709
+ obj = parts[2]
710
+ self._store_temp_command(f"scoreboard players operation @s {temp_var} += {scope} {obj}")
687
711
  else:
688
712
  self._store_temp_command(f"scoreboard players add @s {temp_var} {right_value}")
689
713
 
@@ -691,10 +715,19 @@ class MDLCompiler:
691
715
  if isinstance(expression.left, BinaryExpression):
692
716
  self._store_temp_command(f"scoreboard players operation @s {temp_var} = @s {left_temp}")
693
717
  else:
694
- self._store_temp_command(f"scoreboard players set @s {temp_var} {left_value}")
695
-
696
- if isinstance(expression.right, BinaryExpression):
697
- self._store_temp_command(f"scoreboard players remove @s {temp_var} {right_value}")
718
+ if isinstance(expression.left, VariableSubstitution) or (isinstance(expression.left, str) and str(left_value).startswith("score ")):
719
+ parts = str(left_value).split()
720
+ scope = parts[1]
721
+ obj = parts[2]
722
+ self._store_temp_command(f"scoreboard players operation @s {temp_var} = {scope} {obj}")
723
+ else:
724
+ self._store_temp_command(f"scoreboard players set @s {temp_var} {left_value}")
725
+ # Subtract right value
726
+ if isinstance(expression.right, VariableSubstitution) or (isinstance(expression.right, str) and str(right_value).startswith("score ")):
727
+ parts = str(right_value).split()
728
+ scope = parts[1]
729
+ obj = parts[2]
730
+ self._store_temp_command(f"scoreboard players operation @s {temp_var} -= {scope} {obj}")
698
731
  else:
699
732
  self._store_temp_command(f"scoreboard players remove @s {temp_var} {right_value}")
700
733
 
@@ -702,12 +735,18 @@ class MDLCompiler:
702
735
  if isinstance(expression.left, BinaryExpression):
703
736
  self._store_temp_command(f"scoreboard players operation @s {temp_var} = @s {left_temp}")
704
737
  else:
705
- self._store_temp_command(f"scoreboard players set @s {temp_var} {left_value}")
738
+ if isinstance(expression.left, VariableSubstitution) or (isinstance(expression.left, str) and str(left_value).startswith("score ")):
739
+ parts = str(left_value).split()
740
+ scope = parts[1]
741
+ obj = parts[2]
742
+ self._store_temp_command(f"scoreboard players operation @s {temp_var} = {scope} {obj}")
743
+ else:
744
+ self._store_temp_command(f"scoreboard players set @s {temp_var} {left_value}")
706
745
 
707
746
  if isinstance(expression.right, BinaryExpression):
708
747
  self._store_temp_command(f"scoreboard players operation @s {temp_var} *= @s {right_temp}")
709
748
  else:
710
- # For literal values, we need to use a different approach
749
+ # For literal values, keep explicit multiply command for compatibility
711
750
  if isinstance(expression.right, LiteralExpression):
712
751
  self._store_temp_command(f"scoreboard players multiply @s {temp_var} {expression.right.value}")
713
752
  else:
@@ -717,12 +756,18 @@ class MDLCompiler:
717
756
  if isinstance(expression.left, BinaryExpression):
718
757
  self._store_temp_command(f"scoreboard players operation @s {temp_var} = @s {left_temp}")
719
758
  else:
720
- self._store_temp_command(f"scoreboard players set @s {temp_var} {left_value}")
759
+ if isinstance(expression.left, VariableSubstitution) or (isinstance(expression.left, str) and str(left_value).startswith("score ")):
760
+ parts = str(left_value).split()
761
+ scope = parts[1]
762
+ obj = parts[2]
763
+ self._store_temp_command(f"scoreboard players operation @s {temp_var} = {scope} {obj}")
764
+ else:
765
+ self._store_temp_command(f"scoreboard players set @s {temp_var} {left_value}")
721
766
 
722
767
  if isinstance(expression.right, BinaryExpression):
723
768
  self._store_temp_command(f"scoreboard players operation @s {temp_var} /= @s {right_temp}")
724
769
  else:
725
- # For literal values, we need to use a different approach
770
+ # For literal values, keep explicit divide command for compatibility
726
771
  if isinstance(expression.right, LiteralExpression):
727
772
  self._store_temp_command(f"scoreboard players divide @s {temp_var} {expression.right.value}")
728
773
  else:
@@ -732,10 +777,12 @@ class MDLCompiler:
732
777
  self._store_temp_command(f"scoreboard players set @s {temp_var} 0")
733
778
 
734
779
  def _store_temp_command(self, command: str):
735
- """Store a temporary command for later execution."""
736
- if not hasattr(self, 'temp_commands'):
737
- self.temp_commands = []
738
- self.temp_commands.append(command)
780
+ """Append a temporary command into the current output sink (function/if/while body)."""
781
+ if hasattr(self, '_temp_sink_stack') and self._temp_sink_stack:
782
+ self._temp_sink_stack[-1].append(command)
783
+ else:
784
+ # Fallback: do nothing, but keep behavior predictable
785
+ pass
739
786
 
740
787
  def _generate_temp_variable_name(self) -> str:
741
788
  """Generate a unique temporary variable name."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: minecraft-datapack-language
3
- Version: 15.4.35
3
+ Version: 15.4.36
4
4
  Summary: Compile MDL language with explicit scoping into a Minecraft datapack (1.21+ ready). Features variables, control flow, error handling, and VS Code extension.
5
5
  Project-URL: Homepage, https://www.mcmdl.com
6
6
  Project-URL: Documentation, https://www.mcmdl.com/docs
@@ -18,6 +18,8 @@ test_complex_scenarios.mdl
18
18
  test_comprehensive_fixes.mdl
19
19
  test_if_else_while.mdl
20
20
  test_simple.mdl
21
+ tmp_test1.mdl
22
+ tmp_test1.mdl~
21
23
  ./minecraft_datapack_language/__init__.py
22
24
  ./minecraft_datapack_language/_version.py
23
25
  ./minecraft_datapack_language/ast_nodes.py
@@ -37,6 +39,15 @@ test_simple.mdl
37
39
  .github/workflows/pypi.yml
38
40
  .github/workflows/release.yml
39
41
  .github/workflows/update-website-version.yml
42
+ .mdl-out-test1/pack.mcmeta
43
+ .mdl-out-test1/data/minecraft/tags/function/load.json
44
+ .mdl-out-test1/data/test1/function/load.mcfunction
45
+ .mdl-out-test1/data/test1/function/load1.mcfunction
46
+ .mdl-out-test1/data/test1/function/main.mcfunction
47
+ .mdl-out-test1/data/test1/function/main__else_1.mcfunction
48
+ .mdl-out-test1/data/test1/function/main__if_1.mcfunction
49
+ .mdl-out-test1/data/test1/function/testfunc.mcfunction
50
+ .mdl-out-test1/data/test1/function/testfunc__while_1.mcfunction
40
51
  advancements/diamond_sword.json
41
52
  advancements/first_spell.json
42
53
  advancements/other_advancement.json
@@ -355,6 +366,7 @@ tests/test_complex_scenarios.py
355
366
  tests/test_comprehensive_end_to_end.py
356
367
  tests/test_python_api.py
357
368
  tests/test_python_bindings.py
369
+ tests/test_user_regression_test1.py
358
370
  vscode-extension/README.md
359
371
  vscode-extension/language-configuration.json
360
372
  vscode-extension/package-lock.json
@@ -68,12 +68,11 @@ def test_complex_expression_temp_operations_present():
68
68
  math = (func_dir / 'math.mcfunction').read_text()
69
69
  # Assigned from temp
70
70
  assert 'scoreboard players operation @s x = @s temp_' in math
71
- # Temp ops section includes add/remove/multiply/divide
72
- assert '# Temporary variable operations:' in math
73
- assert 'scoreboard players add @s temp_' in math
74
- assert 'scoreboard players remove @s temp_' in math
75
- assert ('scoreboard players multiply @s temp_' in math) or ('*= score @s temp_' in math)
76
- assert ('scoreboard players divide @s temp_' in math) or ('/= score @s temp_' in math)
71
+ # Temp ops are now inlined directly within function bodies
72
+ assert 'scoreboard players add @s temp_' in math or '+= ' in math
73
+ assert 'scoreboard players remove @s temp_' in math or '-= ' in math
74
+ assert ('scoreboard players multiply @s temp_' in math) or ('*= ' in math)
75
+ assert ('scoreboard players divide @s temp_' in math) or ('/= ' in math)
77
76
 
78
77
 
79
78
  def test_else_branch_written_separately():
@@ -215,7 +215,8 @@ class TestComprehensiveEndToEnd(TestCase):
215
215
  self.assertTrue((output_path_obj / "pack.mcmeta").exists())
216
216
  self.assertTrue((output_path_obj / "data").exists())
217
217
  self.assertTrue((output_path_obj / "data" / "epic").exists())
218
- self.assertTrue((output_path_obj / "data" / "epic" / "functions").exists())
218
+ # Accept either 'function' or 'functions' dir depending on dir_map
219
+ self.assertTrue((output_path_obj / "data" / "epic" / "function").exists() or (output_path_obj / "data" / "epic" / "functions").exists())
219
220
  self.assertTrue((output_path_obj / "data" / "minecraft" / "tags" / "items").exists())
220
221
 
221
222
  # Verify pack.mcmeta content
@@ -225,7 +226,9 @@ class TestComprehensiveEndToEnd(TestCase):
225
226
  self.assertEqual(pack_data["pack"]["description"], "An epic adventure datapack with magic and combat")
226
227
 
227
228
  # Verify function files
228
- functions_dir = output_path_obj / "data" / "epic" / "functions"
229
+ functions_dir = output_path_obj / "data" / "epic" / "function"
230
+ if not functions_dir.exists():
231
+ functions_dir = output_path_obj / "data" / "epic" / "functions"
229
232
  expected_functions = [
230
233
  "initialize_game.mcfunction",
231
234
  "cast_spell.mcfunction",
@@ -0,0 +1,43 @@
1
+ from pathlib import Path
2
+ import tempfile
3
+
4
+ from minecraft_datapack_language.mdl_parser import MDLParser
5
+ from minecraft_datapack_language.mdl_compiler import MDLCompiler
6
+
7
+
8
+ def test_user_snippet_while_and_temp_vars_inline():
9
+ src = (
10
+ 'pack "test1" "Generated by MDL CLI" 82;\n'
11
+ 'namespace "test1";\n\n'
12
+ '// Variables\n'
13
+ 'var num counter<@s> = 0;\n'
14
+ 'var num global_timer<@a> = 0;\n\n'
15
+ 'function test1:testfunc {\n'
16
+ ' var num testfunccount1<@s> = 10;\n'
17
+ ' while $testfunccount1<@s>$ > 0 {\n'
18
+ ' say "Hello from testfunc!";\n'
19
+ ' testfunccount1<@s> = $testfunccount1<@s>$ - 1;\n'
20
+ ' }\n'
21
+ '}\n'
22
+ )
23
+
24
+ parser = MDLParser()
25
+ ast = parser.parse(src)
26
+ with tempfile.TemporaryDirectory() as tmp:
27
+ out = Path(tmp)
28
+ MDLCompiler().compile(ast, str(out))
29
+ func_dir = out / 'data' / 'test1' / 'function'
30
+ # parent file exists and calls generated while function
31
+ parent = (func_dir / 'testfunc.mcfunction').read_text()
32
+ assert 'function test1:testfunc__while_' in parent
33
+ # loop body file contains inlined temp ops and recursion
34
+ while_files = sorted(func_dir.glob('testfunc__while_*.mcfunction'))
35
+ assert while_files, 'expected generated while function file'
36
+ body = while_files[0].read_text()
37
+ assert 'tellraw @a {"text":"Hello from testfunc!"}' in body
38
+ assert 'scoreboard players operation @s temp_' in body
39
+ assert 'scoreboard players remove @s temp_' in body
40
+ assert 'scoreboard players operation @s testfunccount1 = @s temp_' in body
41
+ assert 'execute if score @s testfunccount1 matches 1.. run function test1:testfunc__while_' in body
42
+
43
+
@@ -0,0 +1,40 @@
1
+ pack "test1" "Generated by MDL CLI" 82;
2
+ namespace "test1";
3
+
4
+ // Variables
5
+ var num counter<@s> = 0;
6
+ var num global_timer<@a> = 0;
7
+
8
+ // Main function
9
+ function test1:main {
10
+ say "Hello from test1!";
11
+
12
+ // Variable example
13
+ counter<@s> = 10;
14
+ say "Counter: $counter<@s>$";
15
+
16
+ // Conditional example
17
+ if $counter<@s>$ > 5 {
18
+ say "High counter!";
19
+ } else {
20
+ say "Try again!";
21
+ }
22
+
23
+ exec test1:testfunc<@a>;
24
+ }
25
+
26
+ function test1:testfunc {
27
+ var num testfunccount1<@s> = 10;
28
+ while $testfunccount1<@s>$ > 0 {
29
+ say "Hello from testfunc!";
30
+ testfunccount1<@s> = $testfunccount1<@s>$ - 1;
31
+ }
32
+ }
33
+
34
+ // Load function
35
+ function test1:load1 {
36
+ say "Datapack loaded successfully!";
37
+ }
38
+
39
+ // Hook to run on load
40
+ on_load test1:load1;
File without changes
@@ -1,3 +0,0 @@
1
- current: "15.4.34"
2
- tag: "v15.4.34"
3
- updated_at: "2025-09-04T04:59:52Z"