minecraft-datapack-language 15.3.4__py3-none-any.whl → 15.3.6__py3-none-any.whl
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/_version.py +2 -2
- minecraft_datapack_language/cli_build.py +16 -5
- minecraft_datapack_language/mdl_parser_js.py +9 -0
- {minecraft_datapack_language-15.3.4.dist-info → minecraft_datapack_language-15.3.6.dist-info}/METADATA +1 -1
- {minecraft_datapack_language-15.3.4.dist-info → minecraft_datapack_language-15.3.6.dist-info}/RECORD +9 -9
- {minecraft_datapack_language-15.3.4.dist-info → minecraft_datapack_language-15.3.6.dist-info}/WHEEL +0 -0
- {minecraft_datapack_language-15.3.4.dist-info → minecraft_datapack_language-15.3.6.dist-info}/entry_points.txt +0 -0
- {minecraft_datapack_language-15.3.4.dist-info → minecraft_datapack_language-15.3.6.dist-info}/licenses/LICENSE +0 -0
- {minecraft_datapack_language-15.3.4.dist-info → minecraft_datapack_language-15.3.6.dist-info}/top_level.txt +0 -0
@@ -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.3.
|
32
|
-
__version_tuple__ = version_tuple = (15, 3,
|
31
|
+
__version__ = version = '15.3.6'
|
32
|
+
__version_tuple__ = version_tuple = (15, 3, 6)
|
33
33
|
|
34
34
|
__commit_id__ = commit_id = None
|
@@ -424,6 +424,7 @@ def _process_statement(statement: Any, namespace: str, function_name: str, state
|
|
424
424
|
elif statement['type'] == 'function_call':
|
425
425
|
func_name = statement['name']
|
426
426
|
scope = statement.get('scope')
|
427
|
+
func_namespace = statement.get('namespace', namespace) # Use specified namespace or current namespace
|
427
428
|
|
428
429
|
if scope:
|
429
430
|
# Handle scoped function call
|
@@ -435,10 +436,10 @@ def _process_statement(statement: Any, namespace: str, function_name: str, state
|
|
435
436
|
selector = scope
|
436
437
|
|
437
438
|
# Generate execute as command
|
438
|
-
commands.append(f"execute as {selector} run function {
|
439
|
+
commands.append(f"execute as {selector} run function {func_namespace}:{func_name}")
|
439
440
|
else:
|
440
441
|
# Simple function call without scope
|
441
|
-
commands.append(f"function {
|
442
|
+
commands.append(f"function {func_namespace}:{func_name}")
|
442
443
|
|
443
444
|
elif statement['type'] == 'raw_text':
|
444
445
|
# Raw Minecraft commands
|
@@ -473,12 +474,21 @@ def _generate_function_file(ast: Dict[str, Any], output_dir: Path, namespace: st
|
|
473
474
|
func_name = func['name']
|
474
475
|
func_body = func.get('body', [])
|
475
476
|
|
477
|
+
# Collect variable scopes from the AST
|
478
|
+
variable_scopes = {}
|
479
|
+
if 'variables' in ast:
|
480
|
+
for var_decl in ast['variables']:
|
481
|
+
var_name = var_decl['name']
|
482
|
+
var_scope = var_decl.get('scope')
|
483
|
+
if var_scope:
|
484
|
+
variable_scopes[var_name] = var_scope
|
485
|
+
|
476
486
|
# Generate function content
|
477
487
|
function_commands = []
|
478
488
|
for i, statement in enumerate(func_body):
|
479
489
|
try:
|
480
490
|
print(f"DEBUG: Processing statement {i} of type {statement.get('type', 'unknown')}: {statement}")
|
481
|
-
commands = _process_statement(statement, namespace, func_name, i, False, "@s",
|
491
|
+
commands = _process_statement(statement, namespace, func_name, i, False, "@s", variable_scopes, build_context, output_dir)
|
482
492
|
function_commands.extend(commands)
|
483
493
|
print(f"Generated {len(commands)} commands for statement {i} in function {func_name}: {commands}")
|
484
494
|
except Exception as e:
|
@@ -764,6 +774,7 @@ def _ast_to_pack(ast: Dict[str, Any], mdl_files: List[Path]) -> Pack:
|
|
764
774
|
elif statement.get('type') == 'function_call':
|
765
775
|
func_name = statement['name']
|
766
776
|
scope = statement.get('scope')
|
777
|
+
func_namespace = statement.get('namespace', namespace_name) # Use specified namespace or current namespace
|
767
778
|
|
768
779
|
if scope:
|
769
780
|
# Handle scoped function call
|
@@ -775,10 +786,10 @@ def _ast_to_pack(ast: Dict[str, Any], mdl_files: List[Path]) -> Pack:
|
|
775
786
|
selector = scope
|
776
787
|
|
777
788
|
# Generate execute as command
|
778
|
-
function.commands.append(f"execute as {selector} run function {
|
789
|
+
function.commands.append(f"execute as {selector} run function {func_namespace}:{func_name}")
|
779
790
|
else:
|
780
791
|
# Simple function call without scope
|
781
|
-
function.commands.append(f"function {
|
792
|
+
function.commands.append(f"function {func_namespace}:{func_name}")
|
782
793
|
elif statement.get('type') == 'variable_assignment':
|
783
794
|
# Handle variable assignments
|
784
795
|
var_name = statement['name']
|
@@ -610,6 +610,15 @@ class MDLParser:
|
|
610
610
|
suggestion="Use format: function \"namespace:function_name<@selector>\""
|
611
611
|
)
|
612
612
|
|
613
|
+
# Extract function name from namespace:function_name format
|
614
|
+
if ':' in name:
|
615
|
+
namespace_parts = name.split(':', 1)
|
616
|
+
if len(namespace_parts) == 2:
|
617
|
+
namespace_name = namespace_parts[0]
|
618
|
+
function_name = namespace_parts[1]
|
619
|
+
# Store both namespace and function name
|
620
|
+
return {"type": "function_call", "name": function_name, "scope": scope, "namespace": namespace_name}
|
621
|
+
|
613
622
|
self._match(TokenType.SEMICOLON)
|
614
623
|
|
615
624
|
return {"type": "function_call", "name": name, "scope": scope}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 15.3.
|
3
|
+
Version: 15.3.6
|
4
4
|
Summary: Compile JavaScript-style MDL language or Python API 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
|
{minecraft_datapack_language-15.3.4.dist-info → minecraft_datapack_language-15.3.6.dist-info}/RECORD
RENAMED
@@ -1,8 +1,8 @@
|
|
1
1
|
minecraft_datapack_language/__init__.py,sha256=i-qCchbe5b2Fshgc6yCU9mddOLs2UBt9SAcLqfUIrT0,606
|
2
|
-
minecraft_datapack_language/_version.py,sha256=
|
2
|
+
minecraft_datapack_language/_version.py,sha256=TS_Bj5zM7LLd7rmfHMTCHi-Qpxtxi8wAIBVfacsXbjE,706
|
3
3
|
minecraft_datapack_language/ast_nodes.py,sha256=pgjI2Nlap3ixFPgWqGSkqncG9zB91h5BKgRjtcJqMew,2118
|
4
4
|
minecraft_datapack_language/cli.py,sha256=p5A_tEEXugN2NhQFbbgfwi4FxbWYD91RWeKR_A3Vuec,6263
|
5
|
-
minecraft_datapack_language/cli_build.py,sha256=
|
5
|
+
minecraft_datapack_language/cli_build.py,sha256=KiZhYxCEu2gnz7JPuYSPOe2buyETSY2XjMPw5PunfHw,44281
|
6
6
|
minecraft_datapack_language/cli_check.py,sha256=bPq9gHsxQ1CIiftkrAtRCifWkVAyjp5c8Oay2NNQ1qs,6277
|
7
7
|
minecraft_datapack_language/cli_help.py,sha256=jUTHUQBONAZKVTdQK9tNPXq4c_6xpsafNOvHDjkEldg,12243
|
8
8
|
minecraft_datapack_language/cli_new.py,sha256=uaKH0VBC43XBt_Hztc35-BfC9bYlsDdLbAfe_42rrtI,8235
|
@@ -13,12 +13,12 @@ minecraft_datapack_language/linter.py,sha256=7UqbygC5JPCGg-BSOq65NB2xEJBu_OUOYII
|
|
13
13
|
minecraft_datapack_language/mdl_errors.py,sha256=a_-683gjF3gfGRpDMbRgCXmXD9_aYYBmLodNH6fe29A,11596
|
14
14
|
minecraft_datapack_language/mdl_lexer_js.py,sha256=F8I6A2CjV1sGn8a7OgG66nRKm-0jKxQpOq3fkUgkYlA,26201
|
15
15
|
minecraft_datapack_language/mdl_linter.py,sha256=z85xoAglENurCh30bR7kEHZ_JeMxcYaLDcGNRAl-RAI,17253
|
16
|
-
minecraft_datapack_language/mdl_parser_js.py,sha256=
|
16
|
+
minecraft_datapack_language/mdl_parser_js.py,sha256=Ap7EDpC5wbu1qFmC8htzd8rRqSyYugt58h0AppfDD6s,40171
|
17
17
|
minecraft_datapack_language/pack.py,sha256=nYiXQ3jgJlDfc4m-65f7C2LFhDRioaUU_XVy6Na4SJI,34625
|
18
18
|
minecraft_datapack_language/utils.py,sha256=Aq0HAGlXqj9BUTEjaEilpvzEW0EtZYYMMwOqG9db6dE,684
|
19
|
-
minecraft_datapack_language-15.3.
|
20
|
-
minecraft_datapack_language-15.3.
|
21
|
-
minecraft_datapack_language-15.3.
|
22
|
-
minecraft_datapack_language-15.3.
|
23
|
-
minecraft_datapack_language-15.3.
|
24
|
-
minecraft_datapack_language-15.3.
|
19
|
+
minecraft_datapack_language-15.3.6.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
20
|
+
minecraft_datapack_language-15.3.6.dist-info/METADATA,sha256=J1TMfHwQSpSrLgCeOaOQB0X67JeNNBBoTArWgZ2RtZs,35229
|
21
|
+
minecraft_datapack_language-15.3.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
22
|
+
minecraft_datapack_language-15.3.6.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
|
23
|
+
minecraft_datapack_language-15.3.6.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
|
24
|
+
minecraft_datapack_language-15.3.6.dist-info/RECORD,,
|
{minecraft_datapack_language-15.3.4.dist-info → minecraft_datapack_language-15.3.6.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|