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.
@@ -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.37'
32
- __version_tuple__ = version_tuple = (15, 4, 37)
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.37
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=V_qEje0L1fle9Zgi1jq8YdwcuPBRencAcZSzWIA4Qxo,708
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=skub5NV7BLsE1MuuU_kl4IksO2I9UPp2JH4tROUQjTk,39360
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.37.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
14
- minecraft_datapack_language-15.4.37.dist-info/METADATA,sha256=lJpJlZEXemeoFqox596f4AstUiM3IJld_NIz6rxCGRo,8360
15
- minecraft_datapack_language-15.4.37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
16
- minecraft_datapack_language-15.4.37.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
17
- minecraft_datapack_language-15.4.37.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
18
- minecraft_datapack_language-15.4.37.dist-info/RECORD,,
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,,