minecraft-datapack-language 15.4.37__py3-none-any.whl → 15.4.38__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/mdl_compiler.py +29 -0
- {minecraft_datapack_language-15.4.37.dist-info → minecraft_datapack_language-15.4.38.dist-info}/METADATA +1 -1
- {minecraft_datapack_language-15.4.37.dist-info → minecraft_datapack_language-15.4.38.dist-info}/RECORD +8 -8
- {minecraft_datapack_language-15.4.37.dist-info → minecraft_datapack_language-15.4.38.dist-info}/WHEEL +0 -0
- {minecraft_datapack_language-15.4.37.dist-info → minecraft_datapack_language-15.4.38.dist-info}/entry_points.txt +0 -0
- {minecraft_datapack_language-15.4.37.dist-info → minecraft_datapack_language-15.4.38.dist-info}/licenses/LICENSE +0 -0
- {minecraft_datapack_language-15.4.37.dist-info → minecraft_datapack_language-15.4.38.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.4.
|
32
|
-
__version_tuple__ = version_tuple = (15, 4,
|
31
|
+
__version__ = version = '15.4.38'
|
32
|
+
__version_tuple__ = version_tuple = (15, 4, 38)
|
33
33
|
|
34
34
|
__commit_id__ = commit_id = None
|
@@ -313,6 +313,8 @@ class MDLCompiler:
|
|
313
313
|
"""Convert an AST statement to a Minecraft command."""
|
314
314
|
if isinstance(statement, VariableAssignment):
|
315
315
|
return self._variable_assignment_to_command(statement)
|
316
|
+
elif isinstance(statement, VariableDeclaration):
|
317
|
+
return self._variable_declaration_to_command(statement)
|
316
318
|
elif isinstance(statement, SayCommand):
|
317
319
|
return self._say_command_to_command(statement)
|
318
320
|
elif isinstance(statement, RawBlock):
|
@@ -343,6 +345,24 @@ class MDLCompiler:
|
|
343
345
|
# Simple value - use direct assignment
|
344
346
|
value = self._expression_to_value(assignment.value)
|
345
347
|
return f"scoreboard players set {scope} {objective} {value}"
|
348
|
+
|
349
|
+
def _variable_declaration_to_command(self, decl: VariableDeclaration) -> str:
|
350
|
+
"""Handle var declarations appearing inside function bodies.
|
351
|
+
Ensure objective is registered and optionally set initial value.
|
352
|
+
"""
|
353
|
+
objective = self.variables.get(decl.name, decl.name)
|
354
|
+
# Register objective so load function adds it
|
355
|
+
self.variables[decl.name] = objective
|
356
|
+
# If there is an initial value, set it in current context
|
357
|
+
scope = decl.scope.strip("<>")
|
358
|
+
init = None
|
359
|
+
try:
|
360
|
+
init = self._expression_to_value(decl.initial_value)
|
361
|
+
except Exception:
|
362
|
+
init = None
|
363
|
+
if init is not None:
|
364
|
+
return f"scoreboard players set {scope} {objective} {init}"
|
365
|
+
return f"# var {decl.name} declared"
|
346
366
|
|
347
367
|
def _say_command_to_command(self, say: SayCommand) -> str:
|
348
368
|
"""Convert say command to tellraw command with JSON formatting."""
|
@@ -420,6 +440,9 @@ class MDLCompiler:
|
|
420
440
|
if isinstance(stmt, VariableAssignment):
|
421
441
|
cmd = self._variable_assignment_to_command(stmt)
|
422
442
|
if_body_lines.append(cmd)
|
443
|
+
elif isinstance(stmt, VariableDeclaration):
|
444
|
+
cmd = self._variable_declaration_to_command(stmt)
|
445
|
+
if_body_lines.append(cmd)
|
423
446
|
elif isinstance(stmt, SayCommand):
|
424
447
|
cmd = self._say_command_to_command(stmt)
|
425
448
|
if_body_lines.append(cmd)
|
@@ -468,6 +491,9 @@ class MDLCompiler:
|
|
468
491
|
if isinstance(stmt, VariableAssignment):
|
469
492
|
cmd = self._variable_assignment_to_command(stmt)
|
470
493
|
else_body_lines.append(cmd)
|
494
|
+
elif isinstance(stmt, VariableDeclaration):
|
495
|
+
cmd = self._variable_declaration_to_command(stmt)
|
496
|
+
else_body_lines.append(cmd)
|
471
497
|
elif isinstance(stmt, SayCommand):
|
472
498
|
cmd = self._say_command_to_command(stmt)
|
473
499
|
else_body_lines.append(cmd)
|
@@ -513,6 +539,9 @@ class MDLCompiler:
|
|
513
539
|
if isinstance(stmt, VariableAssignment):
|
514
540
|
cmd = self._variable_assignment_to_command(stmt)
|
515
541
|
loop_body_lines.append(cmd)
|
542
|
+
elif isinstance(stmt, VariableDeclaration):
|
543
|
+
cmd = self._variable_declaration_to_command(stmt)
|
544
|
+
loop_body_lines.append(cmd)
|
516
545
|
elif isinstance(stmt, SayCommand):
|
517
546
|
cmd = self._say_command_to_command(stmt)
|
518
547
|
loop_body_lines.append(cmd)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 15.4.
|
3
|
+
Version: 15.4.38
|
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
|
@@ -1,18 +1,18 @@
|
|
1
1
|
minecraft_datapack_language/__init__.py,sha256=0KVXBE4ScRaRUrf83aA2tVB-y8A_jplyaxVvtHH6Uw0,1199
|
2
|
-
minecraft_datapack_language/_version.py,sha256=
|
2
|
+
minecraft_datapack_language/_version.py,sha256=QAeBw9GSywEaOdZ4hbATpOk5n3gIFmL460R-trSWONI,708
|
3
3
|
minecraft_datapack_language/ast_nodes.py,sha256=nbWrRz137MGMRpmnq8QkXNzrtlaCgyPEknytbkrS_M8,3899
|
4
4
|
minecraft_datapack_language/cli.py,sha256=Vk35mPYm8saMUbBNRDTeoqKiLq9_do_ZeRatFWN2EQs,9824
|
5
5
|
minecraft_datapack_language/dir_map.py,sha256=HmxFkuvWGkzHF8o_GFb4BpuMCRc6QMw8UbmcAI8JVdY,1788
|
6
|
-
minecraft_datapack_language/mdl_compiler.py,sha256=
|
6
|
+
minecraft_datapack_language/mdl_compiler.py,sha256=9ut6cmUMmioQNiiHyNDiqiViimZzgStMzRUDXddPpRI,40802
|
7
7
|
minecraft_datapack_language/mdl_errors.py,sha256=r0Gu3KhoX1YLPAVW_iO7Q_fPgaf_Dv9tOGSOdKNSzmw,16114
|
8
8
|
minecraft_datapack_language/mdl_lexer.py,sha256=CjbEUpuuF4eU_ucA_WIhw6wSMcHGk2BchtQ0bLAGvwg,22033
|
9
9
|
minecraft_datapack_language/mdl_linter.py,sha256=z85xoAglENurCh30bR7kEHZ_JeMxcYaLDcGNRAl-RAI,17253
|
10
10
|
minecraft_datapack_language/mdl_parser.py,sha256=aQPKcmATM9BOMzO7vCXmMdxU1qjOJNLCSAKJopu5h3g,23429
|
11
11
|
minecraft_datapack_language/python_api.py,sha256=ImYULwBvJ0Qb0Tf6LFyXv-gTPGZ8njX7_La0HJKuk-o,8677
|
12
12
|
minecraft_datapack_language/utils.py,sha256=Aq0HAGlXqj9BUTEjaEilpvzEW0EtZYYMMwOqG9db6dE,684
|
13
|
-
minecraft_datapack_language-15.4.
|
14
|
-
minecraft_datapack_language-15.4.
|
15
|
-
minecraft_datapack_language-15.4.
|
16
|
-
minecraft_datapack_language-15.4.
|
17
|
-
minecraft_datapack_language-15.4.
|
18
|
-
minecraft_datapack_language-15.4.
|
13
|
+
minecraft_datapack_language-15.4.38.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
14
|
+
minecraft_datapack_language-15.4.38.dist-info/METADATA,sha256=RqCxGwctWsW8p2HD-hdw-hYYgyEPYNJ8cVn7Vn1Ut_M,8360
|
15
|
+
minecraft_datapack_language-15.4.38.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
16
|
+
minecraft_datapack_language-15.4.38.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
|
17
|
+
minecraft_datapack_language-15.4.38.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
|
18
|
+
minecraft_datapack_language-15.4.38.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|