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.
- minecraft_datapack_language-15.4.36/.mdl-out-test1/data/minecraft/tags/function/load.json +5 -0
- minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/load.mcfunction +7 -0
- minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/load1.mcfunction +3 -0
- minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/main.mcfunction +8 -0
- minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/main__else_1.mcfunction +2 -0
- minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/main__if_1.mcfunction +2 -0
- minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/testfunc.mcfunction +4 -0
- minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/testfunc__while_1.mcfunction +6 -0
- minecraft_datapack_language-15.4.36/.mdl-out-test1/pack.mcmeta +6 -0
- {minecraft_datapack_language-15.4.35/minecraft_datapack_language.egg-info → minecraft_datapack_language-15.4.36}/PKG-INFO +1 -1
- minecraft_datapack_language-15.4.36/docs/_data/version.yml +3 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/_version.py +3 -3
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/mdl_compiler.py +73 -26
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36/minecraft_datapack_language.egg-info}/PKG-INFO +1 -1
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language.egg-info/SOURCES.txt +12 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_codegen_naming_and_logic.py +5 -6
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_comprehensive_end_to_end.py +5 -2
- minecraft_datapack_language-15.4.36/tests/test_user_regression_test1.py +43 -0
- minecraft_datapack_language-15.4.36/tmp_test1.mdl +40 -0
- minecraft_datapack_language-15.4.36/tmp_test1.mdl~ +0 -0
- minecraft_datapack_language-15.4.35/docs/_data/version.yml +0 -3
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.cursor/rules/aispec.mdc +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/actions/mdl-compile/action.yml +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/ci.yml +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/docs.yml +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/pypi.yml +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/release.yml +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/update-website-version.yml +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.gitignore +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/COMPILER_FIXES_SUMMARY.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/CONDITIONALS_IMPLEMENTATION.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/LICENSE +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/Makefile +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/README.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/advancements/diamond_sword.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/advancements/first_spell.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/advancements/other_advancement.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/advancements/test_advancement.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/comprehensive_error_test.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/complex_scopes/function/main_else_8.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/complex_scopes/function/main_if_8.mcfunction +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/control_test/function/main_if_0.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/control_test/function/main_while_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/control_test/function/main_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/if_test/function/main_else_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/if_test/function/main_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/conditional_demo_else_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/conditional_demo_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/conditional_demo_if_3_else_0.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/conditional_demo_if_3_if_0.mcfunction +0 -0
- {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
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/countdown_while_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/countdown_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/increase_tick_per_player_if_1.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/loop_demo_while_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/loop_demo_while_body_2.mcfunction +0 -0
- {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
- {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
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_else_0.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_else_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_else_5.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_if_0.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_if_5.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_6.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_7.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_body_6.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/main_while_body_7.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/scoreboard_demo_while_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/scoreboard_demo_while_body_3.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/start_game_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/start_game_if_5.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/start_game_while_4.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/start_game_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_while_while_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_while_while_4.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_while_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_basic_while_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_if_if_4.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_nested_control_while_2.mcfunction +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_scope_scenarios_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_scope_scenarios_if_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_scope_scenarios_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_scope_scenarios_if_4.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_while_while_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_while_while_6.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_while_while_body_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_complex_while_while_body_6.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_complex_expressions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_complex_expressions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_complex_expressions_while_2.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_error_handling_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_error_handling_if_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_error_handling_while_3.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_4.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_body_2.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_performance_while_body_4.mcfunction +0 -0
- {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
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_scoped_functions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_scoped_functions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_scoped_functions_while_2.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_variable_substitution_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_variable_substitution_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_variable_substitution_while_2.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_assignments_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_assignments_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_assignments_while_2.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_functions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_functions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_functions_while_2.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_raw_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_raw_while_2.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_scopes_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_scopes_if_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_scopes_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_scopes_if_4.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_tellraw_else_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_tellraw_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_tellraw_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_control_with_tellraw_while_2.mcfunction +0 -0
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_else_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_else_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_else_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_if_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_if_else_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_else_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_else_2.mcfunction +0 -0
- {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
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_if_1.mcfunction +0 -0
- {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
- {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
- {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
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_nested_if_if_2.mcfunction +0 -0
- {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
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_if_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_while_4.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_while_5.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_conditionals_while_body_5.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_interactions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_interactions_if_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_scope_interactions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_while_break_while_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/test_while_break_while_body_2.mcfunction +0 -0
- {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
- {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
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/tick_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/tick_if_2.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/tick_if_2_while_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/tick_if_2_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/weapon_effects_else_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test/function/weapon_effects_if_1.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test_final_template_fixed/function/main_else_8.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/test_final_template_fixed/function/main_if_8.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/while_test/function/main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/data/while_test/function/main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/dist.zip +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/.env +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/404.html +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/Gemfile +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/README.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_config.yml +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/cli-reference.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/contributing.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/docs-hub.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/documentation.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/examples.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/getting-started.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/language-reference.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/multi-file-projects.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/python-bindings.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_docs/vscode-extension.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_includes/head-custom.html +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_includes/navigation.html +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_layouts/default.html +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_layouts/page.html +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_plugins/test_version.rb +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/_plugins/version_reader.rb +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/assets/css/style.css +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/docs.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/downloads.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/icon-128.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/icon-256.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/icon-512.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/icons/icon-64.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/docs/index.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/examples/hello_world.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/examples/scope_examples.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/examples/simple_counter.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/icon-128.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/icon-256.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/icon-512.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/icons/icon-64.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/item_modifiers/diamond_sword.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/item_modifiers/enchant_tool.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/item_modifiers/test_item_modifier.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/loot_tables/diamond_sword.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/loot_tables/epic_loot.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/loot_tables/main_loot.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/loot_tables/test_loot.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/mdllocal.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/__init__.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/ast_nodes.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/cli.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/dir_map.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/mdl_errors.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/mdl_lexer.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/mdl_linter.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/mdl_parser.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/python_api.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language/utils.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language.egg-info/dependency_links.txt +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language.egg-info/entry_points.txt +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language.egg-info/requires.txt +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/minecraft_datapack_language.egg-info/top_level.txt +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/multi_scope_example.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/my_awesome_pack/README.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/my_awesome_pack/minecraft_datapack_language.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/predicates/diamond_sword.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/predicates/has_mana.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/predicates/other_predicate.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/predicates/test_predicate.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/pyproject.toml +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/pytest.ini +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/custom_pickaxe.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/diamond_sword.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/first.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/inlet.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/main_recipe.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/outlet.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/pipe.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/second.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/test_recipe.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/recipes/wrench.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scope_demo.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scoreboard_test.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/UpdateMDL.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/bootstrap.ps1 +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/bootstrap.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/build_pkg.ps1 +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/build_pkg.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/dev_build.ps1 +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/dev_build.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/dev_setup.ps1 +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/dev_setup.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/git-bash/bootstrap-gitbash.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/git-bash/build_pkg-gitbash.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/git-bash/test_cli-gitbash.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/release.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/test_cli.ps1 +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/test_cli.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/test_dev.ps1 +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/test_dev.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/update_docs.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/scripts/update_version_info.sh +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/setup.cfg +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/structures/diamond_sword.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/structures/test_structure.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/structures/workshop.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tellraw_variables_test.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/temp_output/data/test/function/helper.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/temp_output/data/test/function/load.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/temp_output/data/test/function/main.mcfunction +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/temp_output/pack.mcmeta +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_all_registry.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_complex_scenarios.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_comprehensive_fixes.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_if_else_while.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_project/complex_test.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/test_simple.mdl +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/__init__.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/run_all_tests.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_cli.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_compiler_fixes.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_complex_scenarios.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_python_api.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/tests/test_python_bindings.py +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/README.md +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/icon-128.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/icon-256.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/icons/icon-512.png +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/language-configuration.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/package-lock.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/package.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/snippets/mdl.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/src/extension.ts +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/syntaxes/mdl.tmLanguage.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/themes/mdl-color-theme.json +0 -0
- {minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/vscode-extension/tsconfig.json +0 -0
@@ -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
|
minecraft_datapack_language-15.4.36/.mdl-out-test1/data/test1/function/testfunc__while_1.mcfunction
ADDED
@@ -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
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 15.4.
|
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
|
@@ -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.
|
32
|
-
__version_tuple__ = version_tuple = (15, 4,
|
31
|
+
__version__ = version = '15.4.36'
|
32
|
+
__version_tuple__ = version_tuple = (15, 4, 36)
|
33
33
|
|
34
|
-
__commit_id__ = commit_id = '
|
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
|
-
#
|
152
|
-
if hasattr(self, '
|
153
|
-
self.
|
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
|
-
|
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
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
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
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
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
|
-
|
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,
|
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
|
-
|
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,
|
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
|
-
"""
|
736
|
-
if
|
737
|
-
self.
|
738
|
-
|
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.
|
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
|
72
|
-
assert '
|
73
|
-
assert 'scoreboard players
|
74
|
-
assert 'scoreboard players
|
75
|
-
assert ('scoreboard players
|
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
|
-
|
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" / "
|
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
|
{minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.cursor/rules/aispec.mdc
RENAMED
File without changes
|
File without changes
|
{minecraft_datapack_language-15.4.35 → minecraft_datapack_language-15.4.36}/.github/workflows/ci.yml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|