minecraft-datapack-language 16.0.9__py3-none-any.whl → 16.0.10__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 +30 -0
- {minecraft_datapack_language-16.0.9.dist-info → minecraft_datapack_language-16.0.10.dist-info}/METADATA +1 -1
- {minecraft_datapack_language-16.0.9.dist-info → minecraft_datapack_language-16.0.10.dist-info}/RECORD +8 -8
- {minecraft_datapack_language-16.0.9.dist-info → minecraft_datapack_language-16.0.10.dist-info}/WHEEL +0 -0
- {minecraft_datapack_language-16.0.9.dist-info → minecraft_datapack_language-16.0.10.dist-info}/entry_points.txt +0 -0
- {minecraft_datapack_language-16.0.9.dist-info → minecraft_datapack_language-16.0.10.dist-info}/licenses/LICENSE +0 -0
- {minecraft_datapack_language-16.0.9.dist-info → minecraft_datapack_language-16.0.10.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 = '16.0.
|
32
|
-
__version_tuple__ = version_tuple = (16, 0,
|
31
|
+
__version__ = version = '16.0.10'
|
32
|
+
__version_tuple__ = version_tuple = (16, 0, 10)
|
33
33
|
|
34
34
|
__commit_id__ = commit_id = None
|
@@ -29,6 +29,8 @@ class MDLCompiler:
|
|
29
29
|
self.dir_map: Optional[DirMap] = None
|
30
30
|
self.current_namespace = "mdl"
|
31
31
|
self.variables: Dict[str, str] = {} # name -> objective mapping
|
32
|
+
# Preserve declared variables so we can initialize defaults in load.mcfunction
|
33
|
+
self.declared_variables: List[VariableDeclaration] = []
|
32
34
|
# Track any temporary scoreboard variables generated during compilation
|
33
35
|
self.temp_variables: Set[str] = set()
|
34
36
|
|
@@ -123,6 +125,7 @@ class MDLCompiler:
|
|
123
125
|
for var in variables:
|
124
126
|
objective_name = var.name
|
125
127
|
self.variables[var.name] = objective_name
|
128
|
+
self.declared_variables.append(var)
|
126
129
|
print(f"Variable: {var.name} -> scoreboard objective '{objective_name}'")
|
127
130
|
|
128
131
|
def _compile_functions(self, functions: List[FunctionDeclaration], data_dir: Path):
|
@@ -301,6 +304,33 @@ class MDLCompiler:
|
|
301
304
|
for var_name, objective in self.variables.items():
|
302
305
|
lines.append(f"scoreboard objectives add {objective} dummy \"{var_name}\"")
|
303
306
|
|
307
|
+
# Initialize declared variables with explicit initial values
|
308
|
+
# Use @a for any @s-scoped variable since load runs without an executor
|
309
|
+
for decl in self.declared_variables:
|
310
|
+
if getattr(decl, 'initial_value', None) is None:
|
311
|
+
continue
|
312
|
+
objective = self.variables.get(decl.name, decl.name)
|
313
|
+
scope = decl.scope.strip("<>") if decl.scope else "@a"
|
314
|
+
if scope == "@s":
|
315
|
+
scope = "@a"
|
316
|
+
init = decl.initial_value
|
317
|
+
from .ast_nodes import LiteralExpression, VariableSubstitution
|
318
|
+
if isinstance(init, LiteralExpression):
|
319
|
+
# Normalize number to int if possible
|
320
|
+
val = init.value
|
321
|
+
try:
|
322
|
+
v = float(val)
|
323
|
+
val_str = str(int(v)) if v.is_integer() else str(v)
|
324
|
+
except Exception:
|
325
|
+
val_str = str(val)
|
326
|
+
lines.append(f"scoreboard players set {scope} {objective} {val_str}")
|
327
|
+
elif isinstance(init, VariableSubstitution):
|
328
|
+
src_obj = self.variables.get(init.name, init.name)
|
329
|
+
src_scope = init.scope.strip("<>") if init.scope else "@a"
|
330
|
+
if src_scope == "@s":
|
331
|
+
src_scope = "@a"
|
332
|
+
lines.append(f"scoreboard players operation {scope} {objective} = {src_scope} {src_obj}")
|
333
|
+
|
304
334
|
lines.append("")
|
305
335
|
|
306
336
|
# Add on_load hook calls
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 16.0.
|
3
|
+
Version: 16.0.10
|
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=dZda77pKR25C-gzKOLtFrN3v3AWdh2iDLxfsjCp57hA,708
|
3
3
|
minecraft_datapack_language/ast_nodes.py,sha256=L5izavSeXDr766vsfRvJrcnflXNJyXcy0WSfyJPq2ZA,4484
|
4
4
|
minecraft_datapack_language/cli.py,sha256=R4QZYtox-Da9B8pr_kCg_9qc9aI-ORTah7kMkhsI5tw,10373
|
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=_-Ieu3GKjVfubpg2YZYiqAriAEbNHTpBg8QFOf8j9_Q,50198
|
7
7
|
minecraft_datapack_language/mdl_errors.py,sha256=r0Gu3KhoX1YLPAVW_iO7Q_fPgaf_Dv9tOGSOdKNSzmw,16114
|
8
8
|
minecraft_datapack_language/mdl_lexer.py,sha256=rfsW2QNcZxa9HAHpU9HFReshQSmjOrrK6xY_r43mKFk,23485
|
9
9
|
minecraft_datapack_language/mdl_linter.py,sha256=z85xoAglENurCh30bR7kEHZ_JeMxcYaLDcGNRAl-RAI,17253
|
10
10
|
minecraft_datapack_language/mdl_parser.py,sha256=Krk7Y_E9OKNCcsDOCT7ATvQLbJII951AU2qzEY00GLE,26068
|
11
11
|
minecraft_datapack_language/python_api.py,sha256=Iao1jbdeW6ekeA80BZG6gNqHVjxQJEheB3DbpVsuTZQ,12304
|
12
12
|
minecraft_datapack_language/utils.py,sha256=Aq0HAGlXqj9BUTEjaEilpvzEW0EtZYYMMwOqG9db6dE,684
|
13
|
-
minecraft_datapack_language-16.0.
|
14
|
-
minecraft_datapack_language-16.0.
|
15
|
-
minecraft_datapack_language-16.0.
|
16
|
-
minecraft_datapack_language-16.0.
|
17
|
-
minecraft_datapack_language-16.0.
|
18
|
-
minecraft_datapack_language-16.0.
|
13
|
+
minecraft_datapack_language-16.0.10.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
14
|
+
minecraft_datapack_language-16.0.10.dist-info/METADATA,sha256=pbOEaWKauZwcBrJkRDbNSbAKvJB3rsveGNxzhMsGmAE,8344
|
15
|
+
minecraft_datapack_language-16.0.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
16
|
+
minecraft_datapack_language-16.0.10.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
|
17
|
+
minecraft_datapack_language-16.0.10.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
|
18
|
+
minecraft_datapack_language-16.0.10.dist-info/RECORD,,
|
{minecraft_datapack_language-16.0.9.dist-info → minecraft_datapack_language-16.0.10.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|