minecraft-datapack-language 17.0.19__py3-none-any.whl → 17.0.21__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/_embedded/docs/_data/version.yml +3 -3
- minecraft_datapack_language/_version.py +2 -2
- minecraft_datapack_language/mdl_compiler.py +26 -16
- {minecraft_datapack_language-17.0.19.dist-info → minecraft_datapack_language-17.0.21.dist-info}/METADATA +1 -1
- {minecraft_datapack_language-17.0.19.dist-info → minecraft_datapack_language-17.0.21.dist-info}/RECORD +9 -9
- {minecraft_datapack_language-17.0.19.dist-info → minecraft_datapack_language-17.0.21.dist-info}/WHEEL +0 -0
- {minecraft_datapack_language-17.0.19.dist-info → minecraft_datapack_language-17.0.21.dist-info}/entry_points.txt +0 -0
- {minecraft_datapack_language-17.0.19.dist-info → minecraft_datapack_language-17.0.21.dist-info}/licenses/LICENSE +0 -0
- {minecraft_datapack_language-17.0.19.dist-info → minecraft_datapack_language-17.0.21.dist-info}/top_level.txt +0 -0
@@ -1,3 +1,3 @@
|
|
1
|
-
current: "17.0.
|
2
|
-
tag: "v17.0.
|
3
|
-
updated_at: "2025-09-11T00:
|
1
|
+
current: "17.0.19"
|
2
|
+
tag: "v17.0.19"
|
3
|
+
updated_at: "2025-09-11T00:53:51Z"
|
@@ -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 = '17.0.
|
32
|
-
__version_tuple__ = version_tuple = (17, 0,
|
31
|
+
__version__ = version = '17.0.21'
|
32
|
+
__version_tuple__ = version_tuple = (17, 0, 21)
|
33
33
|
|
34
34
|
__commit_id__ = commit_id = None
|
@@ -1251,18 +1251,18 @@ class MDLCompiler:
|
|
1251
1251
|
if isinstance(expression.right, BinaryExpression):
|
1252
1252
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} *= @s {right_temp}")
|
1253
1253
|
else:
|
1254
|
-
#
|
1254
|
+
# Normalize and use operation with a temp constant to maximize compatibility
|
1255
1255
|
if isinstance(expression.right, LiteralExpression):
|
1256
|
-
# Normalize number formatting (e.g., 2.0 -> 2)
|
1257
1256
|
literal_str = self._normalize_integer_literal_string(self._expression_to_value(expression.right), ctx="multiply literal")
|
1258
1257
|
if literal_str == "0":
|
1259
1258
|
self._store_temp_command(f"scoreboard players set @s {temp_var} 0")
|
1260
1259
|
elif literal_str == "1":
|
1261
1260
|
pass
|
1262
1261
|
else:
|
1263
|
-
self.
|
1262
|
+
const_var = self._generate_temp_variable_name()
|
1263
|
+
self._store_temp_command(f"scoreboard players set @s {const_var} {literal_str}")
|
1264
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} *= @s {const_var}")
|
1264
1265
|
else:
|
1265
|
-
# If right_value is a score reference string, strip the leading 'score '
|
1266
1266
|
if isinstance(right_value, str) and right_value.startswith("score "):
|
1267
1267
|
parts = right_value.split()
|
1268
1268
|
if len(parts) >= 3:
|
@@ -1272,7 +1272,6 @@ class MDLCompiler:
|
|
1272
1272
|
else:
|
1273
1273
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} *= {right_value}")
|
1274
1274
|
else:
|
1275
|
-
# If RHS is a numeric literal string (incl. negatives), use multiply
|
1276
1275
|
if self._is_numeric_literal_string(right_value):
|
1277
1276
|
lit = self._normalize_integer_literal_string(str(right_value), ctx="multiply literal string")
|
1278
1277
|
if lit == "0":
|
@@ -1280,7 +1279,9 @@ class MDLCompiler:
|
|
1280
1279
|
elif lit == "1":
|
1281
1280
|
pass
|
1282
1281
|
else:
|
1283
|
-
self.
|
1282
|
+
const_var = self._generate_temp_variable_name()
|
1283
|
+
self._store_temp_command(f"scoreboard players set @s {const_var} {lit}")
|
1284
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} *= @s {const_var}")
|
1284
1285
|
else:
|
1285
1286
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} *= {right_value}")
|
1286
1287
|
|
@@ -1299,9 +1300,8 @@ class MDLCompiler:
|
|
1299
1300
|
if isinstance(expression.right, BinaryExpression):
|
1300
1301
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} /= @s {right_temp}")
|
1301
1302
|
else:
|
1302
|
-
#
|
1303
|
+
# Normalize and use operation with a temp constant to maximize compatibility
|
1303
1304
|
if isinstance(expression.right, LiteralExpression):
|
1304
|
-
# Normalize number formatting (e.g., 2.0 -> 2)
|
1305
1305
|
lit = self._normalize_integer_literal_string(self._expression_to_value(expression.right), ctx="divide literal")
|
1306
1306
|
if lit == "0":
|
1307
1307
|
raise MDLCompilerError("Division by zero literal is not allowed", "Use a non-zero integer literal")
|
@@ -1309,12 +1309,17 @@ class MDLCompiler:
|
|
1309
1309
|
pass
|
1310
1310
|
elif lit.startswith("-"):
|
1311
1311
|
abs_lit = lit[1:]
|
1312
|
-
self.
|
1313
|
-
self._store_temp_command(f"scoreboard players
|
1312
|
+
const_div = self._generate_temp_variable_name()
|
1313
|
+
self._store_temp_command(f"scoreboard players set @s {const_div} {abs_lit}")
|
1314
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} /= @s {const_div}")
|
1315
|
+
const_neg = self._generate_temp_variable_name()
|
1316
|
+
self._store_temp_command(f"scoreboard players set @s {const_neg} -1")
|
1317
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} *= @s {const_neg}")
|
1314
1318
|
else:
|
1315
|
-
self.
|
1319
|
+
const_div = self._generate_temp_variable_name()
|
1320
|
+
self._store_temp_command(f"scoreboard players set @s {const_div} {lit}")
|
1321
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} /= @s {const_div}")
|
1316
1322
|
else:
|
1317
|
-
# If right_value is a score reference string, strip the leading 'score '
|
1318
1323
|
if isinstance(right_value, str) and right_value.startswith("score "):
|
1319
1324
|
parts = right_value.split()
|
1320
1325
|
if len(parts) >= 3:
|
@@ -1324,7 +1329,6 @@ class MDLCompiler:
|
|
1324
1329
|
else:
|
1325
1330
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} /= {right_value}")
|
1326
1331
|
else:
|
1327
|
-
# If RHS is a numeric literal string (incl. negatives), use divide
|
1328
1332
|
if self._is_numeric_literal_string(right_value):
|
1329
1333
|
lit = self._normalize_integer_literal_string(str(right_value), ctx="divide literal string")
|
1330
1334
|
if lit == "0":
|
@@ -1333,10 +1337,16 @@ class MDLCompiler:
|
|
1333
1337
|
pass
|
1334
1338
|
elif lit.startswith("-"):
|
1335
1339
|
abs_lit = lit[1:]
|
1336
|
-
self.
|
1337
|
-
self._store_temp_command(f"scoreboard players
|
1340
|
+
const_div = self._generate_temp_variable_name()
|
1341
|
+
self._store_temp_command(f"scoreboard players set @s {const_div} {abs_lit}")
|
1342
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} /= @s {const_div}")
|
1343
|
+
const_neg = self._generate_temp_variable_name()
|
1344
|
+
self._store_temp_command(f"scoreboard players set @s {const_neg} -1")
|
1345
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} *= @s {const_neg}")
|
1338
1346
|
else:
|
1339
|
-
self.
|
1347
|
+
const_div = self._generate_temp_variable_name()
|
1348
|
+
self._store_temp_command(f"scoreboard players set @s {const_div} {lit}")
|
1349
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} /= @s {const_div}")
|
1340
1350
|
else:
|
1341
1351
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} /= {right_value}")
|
1342
1352
|
else:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 17.0.
|
3
|
+
Version: 17.0.21
|
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,9 +1,9 @@
|
|
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=Sv8BjyavqL9RJaEQMkrE6C_lTTFTg_o_gpVhlRHb0Cs,708
|
3
3
|
minecraft_datapack_language/ast_nodes.py,sha256=L5izavSeXDr766vsfRvJrcnflXNJyXcy0WSfyJPq2ZA,4484
|
4
4
|
minecraft_datapack_language/cli.py,sha256=XQ1MgPnP2gKQeYe29Z9w-AAcaRDHX-lTV9SiKp-rmzg,23800
|
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=kWKZapywjQDBhLtSSM7CHNcviCLKiLId17qder2wFKc,71758
|
7
7
|
minecraft_datapack_language/mdl_errors.py,sha256=r0Gu3KhoX1YLPAVW_iO7Q_fPgaf_Dv9tOGSOdKNSzmw,16114
|
8
8
|
minecraft_datapack_language/mdl_lexer.py,sha256=YuRflOkoMOcjECPAZzoAkJciMks5amWMtGbcTIVKmAs,24166
|
9
9
|
minecraft_datapack_language/mdl_linter.py,sha256=z85xoAglENurCh30bR7kEHZ_JeMxcYaLDcGNRAl-RAI,17253
|
@@ -17,7 +17,7 @@ minecraft_datapack_language/_embedded/docs/_config.yml,sha256=wx1F7KonP5t0fvF8ow
|
|
17
17
|
minecraft_datapack_language/_embedded/docs/docs.md,sha256=odOG-EryTrvQFaAEbcqEbtqmPVR1xzQQf5Yc0S0zwFY,4042
|
18
18
|
minecraft_datapack_language/_embedded/docs/downloads.md,sha256=Lp4ShcqCuDoGypswm5sGYORCOYVwGDmVLEz-5NyKndQ,10250
|
19
19
|
minecraft_datapack_language/_embedded/docs/index.md,sha256=lyUqzvaeQhTZdir_6lpEMExWBUFlLcti7KoJVzQ_57Q,9855
|
20
|
-
minecraft_datapack_language/_embedded/docs/_data/version.yml,sha256=
|
20
|
+
minecraft_datapack_language/_embedded/docs/_data/version.yml,sha256=YYsE1AqAPUrrXoZqNfUw2-zs2FLIzOaFO69Uqfn4TsQ,70
|
21
21
|
minecraft_datapack_language/_embedded/docs/_docs/cli-reference.md,sha256=S10YRQcYicRGq4LL_x4VTsxrd4fp9fNy_HcEKKy6bjM,12302
|
22
22
|
minecraft_datapack_language/_embedded/docs/_docs/contributing.md,sha256=Qs-AHky6G9P4L0siMg3l9dAO8I8AzSGW-htEaM_C-Gg,9434
|
23
23
|
minecraft_datapack_language/_embedded/docs/_docs/docs-hub.md,sha256=b0oyaoYkEeKOjG2bRWm4MUnrd03tznKPcECIkhS1sUw,7464
|
@@ -48,9 +48,9 @@ minecraft_datapack_language/completions/mdl.bash,sha256=WNGcSaVJo092o5ScR6h0sRZ4
|
|
48
48
|
minecraft_datapack_language/completions/mdl.fish,sha256=wPBywK1qTJmkB_06UltkuzjwfNz_SDoZamvwLQCXxBI,2689
|
49
49
|
minecraft_datapack_language/completions/mdl.ps1,sha256=fSsNNps9-4h-RS-M--iBySbyLG0Dv52kTBGb4k1qNkQ,1864
|
50
50
|
minecraft_datapack_language/completions/mdl.zsh,sha256=xiuNPasD-Thi9rc5T2j_GqHQOYOVG36LE_jI74IQuoQ,1252
|
51
|
-
minecraft_datapack_language-17.0.
|
52
|
-
minecraft_datapack_language-17.0.
|
53
|
-
minecraft_datapack_language-17.0.
|
54
|
-
minecraft_datapack_language-17.0.
|
55
|
-
minecraft_datapack_language-17.0.
|
56
|
-
minecraft_datapack_language-17.0.
|
51
|
+
minecraft_datapack_language-17.0.21.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
52
|
+
minecraft_datapack_language-17.0.21.dist-info/METADATA,sha256=SQE65AnJgQH6DV_UeTTk66uCs-QjYRJzNMXytN1k8EM,8418
|
53
|
+
minecraft_datapack_language-17.0.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
54
|
+
minecraft_datapack_language-17.0.21.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
|
55
|
+
minecraft_datapack_language-17.0.21.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
|
56
|
+
minecraft_datapack_language-17.0.21.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|