@nodecraft/rendermite 1.8.0 → 1.10.0

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.
Files changed (168) hide show
  1. package/README.md +9 -1
  2. package/dist/atlas/registry.d.ts +3 -3
  3. package/dist/atlas/sources.d.ts +1 -1
  4. package/dist/{atlas-pack-C56gzqAg.d.ts → atlas-pack-BUadroKy.d.ts} +1 -1
  5. package/dist/biomes-BGOF6gRM.js +1100 -0
  6. package/dist/biomes-CnnhDCnk.d.ts +59 -0
  7. package/dist/{blend-C5UYzink.d.ts → blend-mJAeQB3C.d.ts} +1 -1
  8. package/dist/block-behaviour-BBslelpW.d.ts +673 -0
  9. package/dist/block-behaviour-DVjqeSkv.js +180 -0
  10. package/dist/block-overrides-XtxICunI.js +77 -0
  11. package/dist/blocks/atlas-pack.d.ts +1 -1
  12. package/dist/blocks/biomes.d.ts +2 -2
  13. package/dist/blocks/biomes.js +2 -2
  14. package/dist/blocks/block-behaviour.d.ts +2 -0
  15. package/dist/blocks/block-behaviour.js +2 -0
  16. package/dist/blocks/block-entities.d.ts +3 -3
  17. package/dist/blocks/block-overrides.d.ts +26 -0
  18. package/dist/blocks/block-overrides.js +2 -0
  19. package/dist/blocks/cli.js +1 -1
  20. package/dist/blocks/datapack.d.ts +2 -0
  21. package/dist/blocks/datapack.js +2 -0
  22. package/dist/blocks/ender-storage.d.ts +2 -2
  23. package/dist/blocks/entities.d.ts +3 -3
  24. package/dist/blocks/entity-geo.d.ts +1 -1
  25. package/dist/blocks/entity-models.d.ts +4 -13
  26. package/dist/blocks/entity-models.js +1 -1
  27. package/dist/blocks/entity-sizes.d.ts +25 -0
  28. package/dist/blocks/entity-sizes.js +2 -0
  29. package/dist/blocks/export.d.ts +1 -1
  30. package/dist/blocks/export.js +1 -1
  31. package/dist/blocks/game-rules.d.ts +2 -0
  32. package/dist/blocks/game-rules.js +2 -0
  33. package/dist/blocks/geo-blocks.d.ts +2 -2
  34. package/dist/blocks/item-sprites.d.ts +4 -4
  35. package/dist/blocks/light-bytecode.d.ts +2 -174
  36. package/dist/blocks/light-bytecode.js +1 -1
  37. package/dist/blocks/light-eval.d.ts +1 -1
  38. package/dist/blocks/light.d.ts +11 -1
  39. package/dist/blocks/light.js +1 -1
  40. package/dist/blocks/names.d.ts +2 -0
  41. package/dist/blocks/names.js +2 -0
  42. package/dist/blocks/obj-mesh.d.ts +1 -1
  43. package/dist/blocks/pack-format.d.ts +2 -2
  44. package/dist/blocks/sprite-sheet.d.ts +3 -3
  45. package/dist/blocks/states.d.ts +2 -0
  46. package/dist/blocks/states.js +2 -0
  47. package/dist/blocks/tints.d.ts +1 -1
  48. package/dist/{classfile-CiIDF3vc.js → classfile-BJSs3JH0.js} +23 -3
  49. package/dist/{classfile-CsLXlh5z.d.ts → classfile-Dzn0gW9M.d.ts} +6 -0
  50. package/dist/{cli-Dw1Q5CPR.js → cli-DwMPoX0I.js} +10 -5
  51. package/dist/cli.js +7 -7
  52. package/dist/datapack-CmEg0Vko.d.ts +15 -0
  53. package/dist/datapack-D6eH46ay.js +71 -0
  54. package/dist/{descriptor-CmkIkDKL.js → descriptor-Dz2cR-BH.js} +2 -2
  55. package/dist/{discovery-Cmir3QfC.d.ts → discovery-DWe_kX8W.d.ts} +1 -1
  56. package/dist/dynamic/generators.d.ts +1 -1
  57. package/dist/{encode-Br_vPrd8.d.ts → encode-BNEYHHR0.d.ts} +1 -1
  58. package/dist/entities/classfile.d.ts +1 -1
  59. package/dist/entities/classfile.js +1 -1
  60. package/dist/entities/geo-model.d.ts +1 -1
  61. package/dist/entities/inherit.d.ts +2 -2
  62. package/dist/entities/inherit.js +1 -1
  63. package/dist/entities/jar-classes.js +1 -1
  64. package/dist/entities/link.d.ts +2 -2
  65. package/dist/entities/link.js +1 -1
  66. package/dist/entities/mappings.d.ts +1 -1
  67. package/dist/entities/mappings.js +1 -1
  68. package/dist/entities/model-bytecode.d.ts +1 -1
  69. package/dist/entities/model-bytecode.js +1 -1
  70. package/dist/entities/model-code.d.ts +1 -1
  71. package/dist/entities/model-code.js +1 -1
  72. package/dist/{entity-models-BGiy3pey.js → entity-models-vFl_EwfA.js} +24 -5
  73. package/dist/entity-sizes-DspxgSUA.js +194 -0
  74. package/dist/{export-t8X_oRws.js → export-ArMmWuCC.js} +62 -5
  75. package/dist/{export-J13L9Lqu.d.ts → export-CqeTinYL.d.ts} +19 -2
  76. package/dist/{face-DqEd9G_U.d.ts → face-uWXECGNr.d.ts} +2 -2
  77. package/dist/game-rules-BDPTopVW.js +104 -0
  78. package/dist/game-rules-ThvdDG3B.d.ts +16 -0
  79. package/dist/{generators-BnIzAftW.d.ts → generators-hu_vk10m.d.ts} +1 -1
  80. package/dist/{geo-C9QYeLVN.d.ts → geo-DsWwuC5o.d.ts} +4 -4
  81. package/dist/index.d.ts +20 -20
  82. package/dist/index.js +8 -8
  83. package/dist/{inherit-BUn0Cve9.js → inherit-DJ45bOB_.js} +2 -2
  84. package/dist/items/blockstate.d.ts +1 -1
  85. package/dist/items/discovery.d.ts +1 -1
  86. package/dist/{jar-B5iRZQeL.d.ts → jar-4Jg7ufWK.d.ts} +1 -1
  87. package/dist/{jar-CBYPMbw7.js → jar-DvofBm71.js} +2 -2
  88. package/dist/{jar-classes-CSm7qq1R.js → jar-classes-0wqWbTax.js} +2 -2
  89. package/dist/{light-CyRhYulM.js → light-CZRA1pOj.js} +48 -6
  90. package/dist/{light-bytecode-Cpyuxo9b.js → light-bytecode-BqpQWqP7.js} +144 -46
  91. package/dist/{light-eval-D9x0ufZx.d.ts → light-eval-C0-kt0bp.d.ts} +1 -1
  92. package/dist/{link-Cuhyrz07.js → link-IDjVJ2Ij.js} +1 -1
  93. package/dist/{loader-DSir1-P0.d.ts → loader-BYyPIs9f.d.ts} +1 -1
  94. package/dist/{loader-59_eMa8e.d.ts → loader-C4gsX_wO.d.ts} +1 -1
  95. package/dist/{manager-exOIcdyx.d.ts → manager-Ct0dEOMg.d.ts} +6 -0
  96. package/dist/{manager-BNibYkmI.js → manager-D6zXmFrO.js} +6 -0
  97. package/dist/{mappings-Ep6ko0rg.js → mappings-DEl_7xxQ.js} +18 -1
  98. package/dist/{mappings-USwcjtcH.d.ts → mappings-DhOPQTgV.d.ts} +5 -0
  99. package/dist/{model-bytecode-VaLUQfGO.js → model-bytecode-CXYAZ5dX.js} +1 -1
  100. package/dist/{model-code-Csc3bs3h.d.ts → model-code-BclYt1do.d.ts} +1 -1
  101. package/dist/{model-code-DbN2uVhp.js → model-code-BmA5ilgt.js} +1 -1
  102. package/dist/models/loader.d.ts +1 -1
  103. package/dist/{models-CZjCOjs4.js → models-BsYA-NZg.js} +1 -1
  104. package/dist/mods/models.d.ts +1 -1
  105. package/dist/mods/models.js +1 -1
  106. package/dist/mods/prepare.d.ts +1 -1
  107. package/dist/mods/prepare.js +1 -1
  108. package/dist/mods/synthesize.d.ts +2 -2
  109. package/dist/mods/tints.d.ts +2 -2
  110. package/dist/mods/tints.js +1 -1
  111. package/dist/names-D1abAVIB.d.ts +10 -0
  112. package/dist/names-GLa5TyL7.js +36 -0
  113. package/dist/{obj-mesh-ydhVfLKs.d.ts → obj-mesh-CzL0lOlJ.d.ts} +2 -2
  114. package/dist/output/encode.d.ts +1 -1
  115. package/dist/pack.d.ts +7 -6
  116. package/dist/{pipeline-DFuQa8ZT.d.ts → pipeline-DuPF3sap.d.ts} +3 -3
  117. package/dist/{pipeline-CRTQGba7.js → pipeline-Q_185kY6.js} +1 -1
  118. package/dist/{prepare-OS7wL3jv.d.ts → prepare-BPzsZI_S.d.ts} +1 -1
  119. package/dist/{prepare-6pH3CNpg.d.ts → prepare-Ce5SpR7Y.d.ts} +1 -1
  120. package/dist/{prepare-C61BcwFA.js → prepare-DkJkZXuQ.js} +2 -2
  121. package/dist/{prepare-DxPEu9mo.js → prepare-sj36BP90.js} +4 -4
  122. package/dist/{rasterizer-C2wgJZ6J.d.ts → rasterizer-DjnurUgD.d.ts} +1 -1
  123. package/dist/render/blend.d.ts +1 -1
  124. package/dist/render/compose.d.ts +2 -2
  125. package/dist/render/entity-fallback.d.ts +6 -6
  126. package/dist/render/face.d.ts +1 -1
  127. package/dist/render/fluid-bucket.d.ts +2 -2
  128. package/dist/render/geo.d.ts +1 -1
  129. package/dist/render/legacy-tints.d.ts +2 -2
  130. package/dist/render/obj.d.ts +5 -5
  131. package/dist/render/pipeline.d.ts +1 -1
  132. package/dist/render/pipeline.js +1 -1
  133. package/dist/render/rasterizer.d.ts +1 -1
  134. package/dist/render/renderer.d.ts +1 -1
  135. package/dist/render/tints.d.ts +1 -1
  136. package/dist/{renderer-DbUmTFDb.d.ts → renderer-QgROYvPv.d.ts} +5 -5
  137. package/dist/resources/descriptor.d.ts +1 -1
  138. package/dist/resources/descriptor.js +1 -1
  139. package/dist/resources/entity-textures.d.ts +2 -2
  140. package/dist/resources/jar.d.ts +1 -1
  141. package/dist/resources/jar.js +1 -1
  142. package/dist/resources/manager.d.ts +1 -1
  143. package/dist/resources/manager.js +1 -1
  144. package/dist/resources/synthetic.d.ts +1 -1
  145. package/dist/resources/zip-reader.js +1 -1
  146. package/dist/{run-DYcem_Vv.js → run-5yX5KRiI.js} +4 -4
  147. package/dist/{run-CLjF0N2d.d.ts → run-CxB1qabg.d.ts} +2 -2
  148. package/dist/run.d.ts +1 -1
  149. package/dist/run.js +1 -1
  150. package/dist/{sources-e5D09Jz_.d.ts → sources-sFtealLJ.d.ts} +1 -1
  151. package/dist/states-BvoZA-ql.js +40 -0
  152. package/dist/states-OzneeCTU.d.ts +25 -0
  153. package/dist/{synthetic-B3R7mW9k.d.ts → synthetic-CWtFtAkR.d.ts} +1 -1
  154. package/dist/textures/loader.d.ts +1 -1
  155. package/dist/textures/overlay.d.ts +1 -1
  156. package/dist/{tints-uLl1CIkC.d.ts → tints-B0a1K11c.d.ts} +2 -2
  157. package/dist/{tints-CWQz6UkM.js → tints-CZeyKzMv.js} +2 -2
  158. package/dist/{tints-CQX8a1F0.d.ts → tints-DwFmEkf3.d.ts} +2 -2
  159. package/dist/versions/legacy-reshape.d.ts +1 -1
  160. package/dist/versions/prepare.d.ts +1 -1
  161. package/dist/versions/prepare.js +1 -1
  162. package/dist/workers/render-worker.d.ts +2 -2
  163. package/dist/workers/render-worker.js +2 -2
  164. package/dist/{zip-reader-zx3kdSq4.js → zip-reader-onwEVMea.js} +4 -4
  165. package/package.json +1 -1
  166. package/dist/biomes-5ZwYxMYe.js +0 -384
  167. package/dist/biomes-CJDJQqJb.d.ts +0 -38
  168. package/dist/pack-format-BqWf-DNc.d.ts +0 -350
@@ -0,0 +1,1100 @@
1
+ import { r as compareVersions } from "./prepare-DkJkZXuQ.js";
2
+ //#region src/blocks/biomes.ts
3
+ /**
4
+ * Biome climate for the exported pack: what a renderer needs to colour grass,
5
+ * foliage and water the way the game does, per biome rather than per version.
6
+ *
7
+ * `tints.json` says *which* colormap a block reads and ships the images; this
8
+ * says where in one to read. A consumer with both can draw a swamp grey-green
9
+ * and a badlands tan instead of tinting every biome as a plains.
10
+ *
11
+ * Every pack carries exactly the biomes its version has, under the names that
12
+ * version uses, so the file doubles as the version's biome list:
13
+ *
14
+ * - From 1.19.3 a client jar ships vanilla's own biome definitions under
15
+ * `data/minecraft/worldgen/biome/`, and only those are used.
16
+ * - 1.18 to 1.19.2 kept biomes in code. `PRE_JAR_BIOMES` is the 1.19.2 data
17
+ * generator's `worldgen/biome` report, which 1.18 matches less the two 1.19 biomes.
18
+ * - 1.13 to 1.17 stored biomes in chunks as numeric ids, under names 1.18 retired
19
+ * (`mountains`, `giant_tree_taiga`). `LEGACY_BIOMES` is the 1.17.1 generator's
20
+ * `biomes` report with each biome's id, and a pack from that era writes the id
21
+ * too, so a consumer decodes a chunk against the version's own registry.
22
+ *
23
+ * Both tables are frozen history: those versions are closed, and their jars carry
24
+ * nothing to read instead.
25
+ *
26
+ * Mods are read rather than transcribed. A modded biome is a datapack file in
27
+ * the jar (`data/<ns>/worldgen/biome/<name>.json`), which is the same shape the
28
+ * server reports write, so `harvestBiomeClimates` parses whatever a jar ships.
29
+ */
30
+ /** `effects.water_color` where a biome does not override it, which is most of them. */
31
+ const DEFAULT_WATER_COLOR = "#3f76e4";
32
+ /** 1.13–1.17, from the 1.17.1 data generator's `reports/biomes`, in id order. */
33
+ const LEGACY_BIOMES = [
34
+ {
35
+ id: 0,
36
+ name: "minecraft:ocean",
37
+ climate: {
38
+ temperature: .5,
39
+ downfall: .5
40
+ }
41
+ },
42
+ {
43
+ id: 1,
44
+ name: "minecraft:plains",
45
+ climate: {
46
+ temperature: .8,
47
+ downfall: .4
48
+ }
49
+ },
50
+ {
51
+ id: 2,
52
+ name: "minecraft:desert",
53
+ climate: {
54
+ temperature: 2,
55
+ downfall: 0
56
+ }
57
+ },
58
+ {
59
+ id: 3,
60
+ name: "minecraft:mountains",
61
+ climate: {
62
+ temperature: .2,
63
+ downfall: .3
64
+ }
65
+ },
66
+ {
67
+ id: 4,
68
+ name: "minecraft:forest",
69
+ climate: {
70
+ temperature: .7,
71
+ downfall: .8
72
+ }
73
+ },
74
+ {
75
+ id: 5,
76
+ name: "minecraft:taiga",
77
+ climate: {
78
+ temperature: .25,
79
+ downfall: .8
80
+ }
81
+ },
82
+ {
83
+ id: 6,
84
+ name: "minecraft:swamp",
85
+ climate: {
86
+ temperature: .8,
87
+ downfall: .9,
88
+ water: "#617b64",
89
+ modifier: "swamp",
90
+ foliage: "#6a7039"
91
+ }
92
+ },
93
+ {
94
+ id: 7,
95
+ name: "minecraft:river",
96
+ climate: {
97
+ temperature: .5,
98
+ downfall: .5
99
+ }
100
+ },
101
+ {
102
+ id: 8,
103
+ name: "minecraft:nether_wastes",
104
+ climate: {
105
+ temperature: 2,
106
+ downfall: 0
107
+ }
108
+ },
109
+ {
110
+ id: 9,
111
+ name: "minecraft:the_end",
112
+ climate: {
113
+ temperature: .5,
114
+ downfall: .5
115
+ }
116
+ },
117
+ {
118
+ id: 10,
119
+ name: "minecraft:frozen_ocean",
120
+ climate: {
121
+ temperature: 0,
122
+ downfall: .5,
123
+ water: "#3938c9"
124
+ }
125
+ },
126
+ {
127
+ id: 11,
128
+ name: "minecraft:frozen_river",
129
+ climate: {
130
+ temperature: 0,
131
+ downfall: .5,
132
+ water: "#3938c9"
133
+ }
134
+ },
135
+ {
136
+ id: 12,
137
+ name: "minecraft:snowy_tundra",
138
+ climate: {
139
+ temperature: 0,
140
+ downfall: .5
141
+ }
142
+ },
143
+ {
144
+ id: 13,
145
+ name: "minecraft:snowy_mountains",
146
+ climate: {
147
+ temperature: 0,
148
+ downfall: .5
149
+ }
150
+ },
151
+ {
152
+ id: 14,
153
+ name: "minecraft:mushroom_fields",
154
+ climate: {
155
+ temperature: .9,
156
+ downfall: 1
157
+ }
158
+ },
159
+ {
160
+ id: 15,
161
+ name: "minecraft:mushroom_field_shore",
162
+ climate: {
163
+ temperature: .9,
164
+ downfall: 1
165
+ }
166
+ },
167
+ {
168
+ id: 16,
169
+ name: "minecraft:beach",
170
+ climate: {
171
+ temperature: .8,
172
+ downfall: .4
173
+ }
174
+ },
175
+ {
176
+ id: 17,
177
+ name: "minecraft:desert_hills",
178
+ climate: {
179
+ temperature: 2,
180
+ downfall: 0
181
+ }
182
+ },
183
+ {
184
+ id: 18,
185
+ name: "minecraft:wooded_hills",
186
+ climate: {
187
+ temperature: .7,
188
+ downfall: .8
189
+ }
190
+ },
191
+ {
192
+ id: 19,
193
+ name: "minecraft:taiga_hills",
194
+ climate: {
195
+ temperature: .25,
196
+ downfall: .8
197
+ }
198
+ },
199
+ {
200
+ id: 20,
201
+ name: "minecraft:mountain_edge",
202
+ climate: {
203
+ temperature: .2,
204
+ downfall: .3
205
+ }
206
+ },
207
+ {
208
+ id: 21,
209
+ name: "minecraft:jungle",
210
+ climate: {
211
+ temperature: .95,
212
+ downfall: .9
213
+ }
214
+ },
215
+ {
216
+ id: 22,
217
+ name: "minecraft:jungle_hills",
218
+ climate: {
219
+ temperature: .95,
220
+ downfall: .9
221
+ }
222
+ },
223
+ {
224
+ id: 23,
225
+ name: "minecraft:jungle_edge",
226
+ climate: {
227
+ temperature: .95,
228
+ downfall: .8
229
+ }
230
+ },
231
+ {
232
+ id: 24,
233
+ name: "minecraft:deep_ocean",
234
+ climate: {
235
+ temperature: .5,
236
+ downfall: .5
237
+ }
238
+ },
239
+ {
240
+ id: 25,
241
+ name: "minecraft:stone_shore",
242
+ climate: {
243
+ temperature: .2,
244
+ downfall: .3
245
+ }
246
+ },
247
+ {
248
+ id: 26,
249
+ name: "minecraft:snowy_beach",
250
+ climate: {
251
+ temperature: .05,
252
+ downfall: .3,
253
+ water: "#3d57d6"
254
+ }
255
+ },
256
+ {
257
+ id: 27,
258
+ name: "minecraft:birch_forest",
259
+ climate: {
260
+ temperature: .6,
261
+ downfall: .6
262
+ }
263
+ },
264
+ {
265
+ id: 28,
266
+ name: "minecraft:birch_forest_hills",
267
+ climate: {
268
+ temperature: .6,
269
+ downfall: .6
270
+ }
271
+ },
272
+ {
273
+ id: 29,
274
+ name: "minecraft:dark_forest",
275
+ climate: {
276
+ temperature: .7,
277
+ downfall: .8,
278
+ modifier: "dark_forest"
279
+ }
280
+ },
281
+ {
282
+ id: 30,
283
+ name: "minecraft:snowy_taiga",
284
+ climate: {
285
+ temperature: -.5,
286
+ downfall: .4,
287
+ water: "#3d57d6"
288
+ }
289
+ },
290
+ {
291
+ id: 31,
292
+ name: "minecraft:snowy_taiga_hills",
293
+ climate: {
294
+ temperature: -.5,
295
+ downfall: .4,
296
+ water: "#3d57d6"
297
+ }
298
+ },
299
+ {
300
+ id: 32,
301
+ name: "minecraft:giant_tree_taiga",
302
+ climate: {
303
+ temperature: .3,
304
+ downfall: .8
305
+ }
306
+ },
307
+ {
308
+ id: 33,
309
+ name: "minecraft:giant_tree_taiga_hills",
310
+ climate: {
311
+ temperature: .3,
312
+ downfall: .8
313
+ }
314
+ },
315
+ {
316
+ id: 34,
317
+ name: "minecraft:wooded_mountains",
318
+ climate: {
319
+ temperature: .2,
320
+ downfall: .3
321
+ }
322
+ },
323
+ {
324
+ id: 35,
325
+ name: "minecraft:savanna",
326
+ climate: {
327
+ temperature: 1.2,
328
+ downfall: 0
329
+ }
330
+ },
331
+ {
332
+ id: 36,
333
+ name: "minecraft:savanna_plateau",
334
+ climate: {
335
+ temperature: 1,
336
+ downfall: 0
337
+ }
338
+ },
339
+ {
340
+ id: 37,
341
+ name: "minecraft:badlands",
342
+ climate: {
343
+ temperature: 2,
344
+ downfall: 0,
345
+ grass: "#90814d",
346
+ foliage: "#9e814d"
347
+ }
348
+ },
349
+ {
350
+ id: 38,
351
+ name: "minecraft:wooded_badlands_plateau",
352
+ climate: {
353
+ temperature: 2,
354
+ downfall: 0,
355
+ grass: "#90814d",
356
+ foliage: "#9e814d"
357
+ }
358
+ },
359
+ {
360
+ id: 39,
361
+ name: "minecraft:badlands_plateau",
362
+ climate: {
363
+ temperature: 2,
364
+ downfall: 0,
365
+ grass: "#90814d",
366
+ foliage: "#9e814d"
367
+ }
368
+ },
369
+ {
370
+ id: 40,
371
+ name: "minecraft:small_end_islands",
372
+ climate: {
373
+ temperature: .5,
374
+ downfall: .5
375
+ }
376
+ },
377
+ {
378
+ id: 41,
379
+ name: "minecraft:end_midlands",
380
+ climate: {
381
+ temperature: .5,
382
+ downfall: .5
383
+ }
384
+ },
385
+ {
386
+ id: 42,
387
+ name: "minecraft:end_highlands",
388
+ climate: {
389
+ temperature: .5,
390
+ downfall: .5
391
+ }
392
+ },
393
+ {
394
+ id: 43,
395
+ name: "minecraft:end_barrens",
396
+ climate: {
397
+ temperature: .5,
398
+ downfall: .5
399
+ }
400
+ },
401
+ {
402
+ id: 44,
403
+ name: "minecraft:warm_ocean",
404
+ climate: {
405
+ temperature: .5,
406
+ downfall: .5,
407
+ water: "#43d5ee"
408
+ }
409
+ },
410
+ {
411
+ id: 45,
412
+ name: "minecraft:lukewarm_ocean",
413
+ climate: {
414
+ temperature: .5,
415
+ downfall: .5,
416
+ water: "#45adf2"
417
+ }
418
+ },
419
+ {
420
+ id: 46,
421
+ name: "minecraft:cold_ocean",
422
+ climate: {
423
+ temperature: .5,
424
+ downfall: .5,
425
+ water: "#3d57d6"
426
+ }
427
+ },
428
+ {
429
+ id: 47,
430
+ name: "minecraft:deep_warm_ocean",
431
+ climate: {
432
+ temperature: .5,
433
+ downfall: .5,
434
+ water: "#43d5ee"
435
+ }
436
+ },
437
+ {
438
+ id: 48,
439
+ name: "minecraft:deep_lukewarm_ocean",
440
+ climate: {
441
+ temperature: .5,
442
+ downfall: .5,
443
+ water: "#45adf2"
444
+ }
445
+ },
446
+ {
447
+ id: 49,
448
+ name: "minecraft:deep_cold_ocean",
449
+ climate: {
450
+ temperature: .5,
451
+ downfall: .5,
452
+ water: "#3d57d6"
453
+ }
454
+ },
455
+ {
456
+ id: 50,
457
+ name: "minecraft:deep_frozen_ocean",
458
+ climate: {
459
+ temperature: .5,
460
+ downfall: .5,
461
+ water: "#3938c9"
462
+ }
463
+ },
464
+ {
465
+ id: 127,
466
+ name: "minecraft:the_void",
467
+ climate: {
468
+ temperature: .5,
469
+ downfall: .5
470
+ }
471
+ },
472
+ {
473
+ id: 129,
474
+ name: "minecraft:sunflower_plains",
475
+ climate: {
476
+ temperature: .8,
477
+ downfall: .4
478
+ }
479
+ },
480
+ {
481
+ id: 130,
482
+ name: "minecraft:desert_lakes",
483
+ climate: {
484
+ temperature: 2,
485
+ downfall: 0
486
+ }
487
+ },
488
+ {
489
+ id: 131,
490
+ name: "minecraft:gravelly_mountains",
491
+ climate: {
492
+ temperature: .2,
493
+ downfall: .3
494
+ }
495
+ },
496
+ {
497
+ id: 132,
498
+ name: "minecraft:flower_forest",
499
+ climate: {
500
+ temperature: .7,
501
+ downfall: .8
502
+ }
503
+ },
504
+ {
505
+ id: 133,
506
+ name: "minecraft:taiga_mountains",
507
+ climate: {
508
+ temperature: .25,
509
+ downfall: .8
510
+ }
511
+ },
512
+ {
513
+ id: 134,
514
+ name: "minecraft:swamp_hills",
515
+ climate: {
516
+ temperature: .8,
517
+ downfall: .9,
518
+ water: "#617b64",
519
+ modifier: "swamp",
520
+ foliage: "#6a7039"
521
+ }
522
+ },
523
+ {
524
+ id: 140,
525
+ name: "minecraft:ice_spikes",
526
+ climate: {
527
+ temperature: 0,
528
+ downfall: .5
529
+ }
530
+ },
531
+ {
532
+ id: 149,
533
+ name: "minecraft:modified_jungle",
534
+ climate: {
535
+ temperature: .95,
536
+ downfall: .9
537
+ }
538
+ },
539
+ {
540
+ id: 151,
541
+ name: "minecraft:modified_jungle_edge",
542
+ climate: {
543
+ temperature: .95,
544
+ downfall: .8
545
+ }
546
+ },
547
+ {
548
+ id: 155,
549
+ name: "minecraft:tall_birch_forest",
550
+ climate: {
551
+ temperature: .6,
552
+ downfall: .6
553
+ }
554
+ },
555
+ {
556
+ id: 156,
557
+ name: "minecraft:tall_birch_hills",
558
+ climate: {
559
+ temperature: .6,
560
+ downfall: .6
561
+ }
562
+ },
563
+ {
564
+ id: 157,
565
+ name: "minecraft:dark_forest_hills",
566
+ climate: {
567
+ temperature: .7,
568
+ downfall: .8,
569
+ modifier: "dark_forest"
570
+ }
571
+ },
572
+ {
573
+ id: 158,
574
+ name: "minecraft:snowy_taiga_mountains",
575
+ climate: {
576
+ temperature: -.5,
577
+ downfall: .4,
578
+ water: "#3d57d6"
579
+ }
580
+ },
581
+ {
582
+ id: 160,
583
+ name: "minecraft:giant_spruce_taiga",
584
+ climate: {
585
+ temperature: .25,
586
+ downfall: .8
587
+ }
588
+ },
589
+ {
590
+ id: 161,
591
+ name: "minecraft:giant_spruce_taiga_hills",
592
+ climate: {
593
+ temperature: .25,
594
+ downfall: .8
595
+ }
596
+ },
597
+ {
598
+ id: 162,
599
+ name: "minecraft:modified_gravelly_mountains",
600
+ climate: {
601
+ temperature: .2,
602
+ downfall: .3
603
+ }
604
+ },
605
+ {
606
+ id: 163,
607
+ name: "minecraft:shattered_savanna",
608
+ climate: {
609
+ temperature: 1.1,
610
+ downfall: 0
611
+ }
612
+ },
613
+ {
614
+ id: 164,
615
+ name: "minecraft:shattered_savanna_plateau",
616
+ climate: {
617
+ temperature: 1,
618
+ downfall: 0
619
+ }
620
+ },
621
+ {
622
+ id: 165,
623
+ name: "minecraft:eroded_badlands",
624
+ climate: {
625
+ temperature: 2,
626
+ downfall: 0,
627
+ grass: "#90814d",
628
+ foliage: "#9e814d"
629
+ }
630
+ },
631
+ {
632
+ id: 166,
633
+ name: "minecraft:modified_wooded_badlands_plateau",
634
+ climate: {
635
+ temperature: 2,
636
+ downfall: 0,
637
+ grass: "#90814d",
638
+ foliage: "#9e814d"
639
+ }
640
+ },
641
+ {
642
+ id: 167,
643
+ name: "minecraft:modified_badlands_plateau",
644
+ climate: {
645
+ temperature: 2,
646
+ downfall: 0,
647
+ grass: "#90814d",
648
+ foliage: "#9e814d"
649
+ }
650
+ },
651
+ {
652
+ id: 168,
653
+ name: "minecraft:bamboo_jungle",
654
+ since: "1.14",
655
+ climate: {
656
+ temperature: .95,
657
+ downfall: .9
658
+ }
659
+ },
660
+ {
661
+ id: 169,
662
+ name: "minecraft:bamboo_jungle_hills",
663
+ since: "1.14",
664
+ climate: {
665
+ temperature: .95,
666
+ downfall: .9
667
+ }
668
+ },
669
+ {
670
+ id: 170,
671
+ name: "minecraft:soul_sand_valley",
672
+ since: "1.16",
673
+ climate: {
674
+ temperature: 2,
675
+ downfall: 0
676
+ }
677
+ },
678
+ {
679
+ id: 171,
680
+ name: "minecraft:crimson_forest",
681
+ since: "1.16",
682
+ climate: {
683
+ temperature: 2,
684
+ downfall: 0
685
+ }
686
+ },
687
+ {
688
+ id: 172,
689
+ name: "minecraft:warped_forest",
690
+ since: "1.16",
691
+ climate: {
692
+ temperature: 2,
693
+ downfall: 0
694
+ }
695
+ },
696
+ {
697
+ id: 173,
698
+ name: "minecraft:basalt_deltas",
699
+ since: "1.16",
700
+ climate: {
701
+ temperature: 2,
702
+ downfall: 0
703
+ }
704
+ },
705
+ {
706
+ id: 174,
707
+ name: "minecraft:dripstone_caves",
708
+ since: "1.17",
709
+ climate: {
710
+ temperature: .8,
711
+ downfall: .4
712
+ }
713
+ },
714
+ {
715
+ id: 175,
716
+ name: "minecraft:lush_caves",
717
+ since: "1.17",
718
+ climate: {
719
+ temperature: .5,
720
+ downfall: .5
721
+ }
722
+ }
723
+ ];
724
+ /** 1.16 renamed the Nether's only biome when it gained four more; before that id 8 was `nether`. */
725
+ const LEGACY_NETHER = "minecraft:nether";
726
+ /** 1.18–1.19.2, from the 1.19.2 data generator's `worldgen/biome` report. Ordered so a regenerated table diffs cleanly. */
727
+ const PRE_JAR_BIOMES = {
728
+ "minecraft:badlands": {
729
+ temperature: 2,
730
+ downfall: 0,
731
+ grass: "#90814d",
732
+ foliage: "#9e814d"
733
+ },
734
+ "minecraft:bamboo_jungle": {
735
+ temperature: .95,
736
+ downfall: .9
737
+ },
738
+ "minecraft:basalt_deltas": {
739
+ temperature: 2,
740
+ downfall: 0
741
+ },
742
+ "minecraft:beach": {
743
+ temperature: .8,
744
+ downfall: .4
745
+ },
746
+ "minecraft:birch_forest": {
747
+ temperature: .6,
748
+ downfall: .6
749
+ },
750
+ "minecraft:cold_ocean": {
751
+ temperature: .5,
752
+ downfall: .5,
753
+ water: "#3d57d6"
754
+ },
755
+ "minecraft:crimson_forest": {
756
+ temperature: 2,
757
+ downfall: 0
758
+ },
759
+ "minecraft:dark_forest": {
760
+ temperature: .7,
761
+ downfall: .8,
762
+ modifier: "dark_forest"
763
+ },
764
+ "minecraft:deep_cold_ocean": {
765
+ temperature: .5,
766
+ downfall: .5,
767
+ water: "#3d57d6"
768
+ },
769
+ "minecraft:deep_dark": {
770
+ temperature: .8,
771
+ downfall: .4
772
+ },
773
+ "minecraft:deep_frozen_ocean": {
774
+ temperature: .5,
775
+ downfall: .5,
776
+ water: "#3938c9"
777
+ },
778
+ "minecraft:deep_lukewarm_ocean": {
779
+ temperature: .5,
780
+ downfall: .5,
781
+ water: "#45adf2"
782
+ },
783
+ "minecraft:deep_ocean": {
784
+ temperature: .5,
785
+ downfall: .5
786
+ },
787
+ "minecraft:desert": {
788
+ temperature: 2,
789
+ downfall: 0
790
+ },
791
+ "minecraft:dripstone_caves": {
792
+ temperature: .8,
793
+ downfall: .4
794
+ },
795
+ "minecraft:end_barrens": {
796
+ temperature: .5,
797
+ downfall: .5
798
+ },
799
+ "minecraft:end_highlands": {
800
+ temperature: .5,
801
+ downfall: .5
802
+ },
803
+ "minecraft:end_midlands": {
804
+ temperature: .5,
805
+ downfall: .5
806
+ },
807
+ "minecraft:eroded_badlands": {
808
+ temperature: 2,
809
+ downfall: 0,
810
+ grass: "#90814d",
811
+ foliage: "#9e814d"
812
+ },
813
+ "minecraft:flower_forest": {
814
+ temperature: .7,
815
+ downfall: .8
816
+ },
817
+ "minecraft:forest": {
818
+ temperature: .7,
819
+ downfall: .8
820
+ },
821
+ "minecraft:frozen_ocean": {
822
+ temperature: 0,
823
+ downfall: .5,
824
+ water: "#3938c9"
825
+ },
826
+ "minecraft:frozen_peaks": {
827
+ temperature: -.7,
828
+ downfall: .9
829
+ },
830
+ "minecraft:frozen_river": {
831
+ temperature: 0,
832
+ downfall: .5,
833
+ water: "#3938c9"
834
+ },
835
+ "minecraft:grove": {
836
+ temperature: -.2,
837
+ downfall: .8
838
+ },
839
+ "minecraft:ice_spikes": {
840
+ temperature: 0,
841
+ downfall: .5
842
+ },
843
+ "minecraft:jagged_peaks": {
844
+ temperature: -.7,
845
+ downfall: .9
846
+ },
847
+ "minecraft:jungle": {
848
+ temperature: .95,
849
+ downfall: .9
850
+ },
851
+ "minecraft:lukewarm_ocean": {
852
+ temperature: .5,
853
+ downfall: .5,
854
+ water: "#45adf2"
855
+ },
856
+ "minecraft:lush_caves": {
857
+ temperature: .5,
858
+ downfall: .5
859
+ },
860
+ "minecraft:mangrove_swamp": {
861
+ temperature: .8,
862
+ downfall: .9,
863
+ water: "#3a7a6a",
864
+ modifier: "swamp",
865
+ foliage: "#8db127"
866
+ },
867
+ "minecraft:meadow": {
868
+ temperature: .5,
869
+ downfall: .8,
870
+ water: "#0e4ecf"
871
+ },
872
+ "minecraft:mushroom_fields": {
873
+ temperature: .9,
874
+ downfall: 1
875
+ },
876
+ "minecraft:nether_wastes": {
877
+ temperature: 2,
878
+ downfall: 0
879
+ },
880
+ "minecraft:ocean": {
881
+ temperature: .5,
882
+ downfall: .5
883
+ },
884
+ "minecraft:old_growth_birch_forest": {
885
+ temperature: .6,
886
+ downfall: .6
887
+ },
888
+ "minecraft:old_growth_pine_taiga": {
889
+ temperature: .3,
890
+ downfall: .8
891
+ },
892
+ "minecraft:old_growth_spruce_taiga": {
893
+ temperature: .25,
894
+ downfall: .8
895
+ },
896
+ "minecraft:plains": {
897
+ temperature: .8,
898
+ downfall: .4
899
+ },
900
+ "minecraft:river": {
901
+ temperature: .5,
902
+ downfall: .5
903
+ },
904
+ "minecraft:savanna": {
905
+ temperature: 2,
906
+ downfall: 0
907
+ },
908
+ "minecraft:savanna_plateau": {
909
+ temperature: 2,
910
+ downfall: 0
911
+ },
912
+ "minecraft:small_end_islands": {
913
+ temperature: .5,
914
+ downfall: .5
915
+ },
916
+ "minecraft:snowy_beach": {
917
+ temperature: .05,
918
+ downfall: .3,
919
+ water: "#3d57d6"
920
+ },
921
+ "minecraft:snowy_plains": {
922
+ temperature: 0,
923
+ downfall: .5
924
+ },
925
+ "minecraft:snowy_slopes": {
926
+ temperature: -.3,
927
+ downfall: .9
928
+ },
929
+ "minecraft:snowy_taiga": {
930
+ temperature: -.5,
931
+ downfall: .4,
932
+ water: "#3d57d6"
933
+ },
934
+ "minecraft:soul_sand_valley": {
935
+ temperature: 2,
936
+ downfall: 0
937
+ },
938
+ "minecraft:sparse_jungle": {
939
+ temperature: .95,
940
+ downfall: .8
941
+ },
942
+ "minecraft:stony_peaks": {
943
+ temperature: 1,
944
+ downfall: .3
945
+ },
946
+ "minecraft:stony_shore": {
947
+ temperature: .2,
948
+ downfall: .3
949
+ },
950
+ "minecraft:sunflower_plains": {
951
+ temperature: .8,
952
+ downfall: .4
953
+ },
954
+ "minecraft:swamp": {
955
+ temperature: .8,
956
+ downfall: .9,
957
+ water: "#617b64",
958
+ modifier: "swamp",
959
+ foliage: "#6a7039"
960
+ },
961
+ "minecraft:taiga": {
962
+ temperature: .25,
963
+ downfall: .8
964
+ },
965
+ "minecraft:the_end": {
966
+ temperature: .5,
967
+ downfall: .5
968
+ },
969
+ "minecraft:the_void": {
970
+ temperature: .5,
971
+ downfall: .5
972
+ },
973
+ "minecraft:warm_ocean": {
974
+ temperature: .5,
975
+ downfall: .5,
976
+ water: "#43d5ee"
977
+ },
978
+ "minecraft:warped_forest": {
979
+ temperature: 2,
980
+ downfall: 0
981
+ },
982
+ "minecraft:windswept_forest": {
983
+ temperature: .2,
984
+ downfall: .3
985
+ },
986
+ "minecraft:windswept_gravelly_hills": {
987
+ temperature: .2,
988
+ downfall: .3
989
+ },
990
+ "minecraft:windswept_hills": {
991
+ temperature: .2,
992
+ downfall: .3
993
+ },
994
+ "minecraft:windswept_savanna": {
995
+ temperature: 2,
996
+ downfall: 0
997
+ },
998
+ "minecraft:wooded_badlands": {
999
+ temperature: 2,
1000
+ downfall: 0,
1001
+ grass: "#90814d",
1002
+ foliage: "#9e814d"
1003
+ }
1004
+ };
1005
+ /** @deprecated One version's table stood in for all of them; use `vanillaBiomesFor(version)`. */
1006
+ const VANILLA_BIOME_CLIMATES = PRE_JAR_BIOMES;
1007
+ /** The two biomes 1.19 added to `PRE_JAR_BIOMES`, which a 1.18 world cannot contain. */
1008
+ const SINCE_1_19 = /* @__PURE__ */ new Set(["minecraft:deep_dark", "minecraft:mangrove_swamp"]);
1009
+ /**
1010
+ * Vanilla's biomes as a version without biome data in its jar has them: the version's own set,
1011
+ * under its own names. A version that is not a release number (an `--assets` run) gets the newest.
1012
+ */
1013
+ function vanillaBiomesFor(version) {
1014
+ const numbered = /^\d+\.\d+/.test(version);
1015
+ if (numbered && compareVersions(version, "1.18") < 0) {
1016
+ const pack = {};
1017
+ for (const biome of LEGACY_BIOMES) {
1018
+ if (biome.since !== void 0 && compareVersions(version, biome.since) < 0) continue;
1019
+ const name = biome.id === 8 && compareVersions(version, "1.16") < 0 ? LEGACY_NETHER : biome.name;
1020
+ pack[name] = {
1021
+ id: biome.id,
1022
+ ...biome.climate
1023
+ };
1024
+ }
1025
+ return pack;
1026
+ }
1027
+ if (numbered && compareVersions(version, "1.19") < 0) return Object.fromEntries(Object.entries(PRE_JAR_BIOMES).filter(([id]) => !SINCE_1_19.has(id)));
1028
+ return { ...PRE_JAR_BIOMES };
1029
+ }
1030
+ /** Vanilla writes `grass_color_modifier` as one of two names; anything else is a mod's typo. */
1031
+ const MODIFIERS = /* @__PURE__ */ new Set(["dark_forest", "swamp"]);
1032
+ /**
1033
+ * A colour as biome data spells it. Vanilla's own files use `#rrggbb` now, mod
1034
+ * jars built against older versions write the same value as a decimal int, and
1035
+ * both mean the same 24 bits.
1036
+ */
1037
+ function biomeColor(value) {
1038
+ if (typeof value === "string") {
1039
+ const hex = /^#?([\da-f]{6})$/i.exec(value.trim());
1040
+ return hex ? `#${hex[1].toLowerCase()}` : void 0;
1041
+ }
1042
+ if (typeof value === "number" && Number.isFinite(value)) return `#${(value & 16777215).toString(16).padStart(6, "0")}`;
1043
+ }
1044
+ /** One biome definition as a datapack states it, or `null` when it states no climate. */
1045
+ function parseBiomeClimate(json) {
1046
+ const biome = json;
1047
+ if (typeof biome?.temperature !== "number" || typeof biome.downfall !== "number") return null;
1048
+ const effects = biome.effects ?? {};
1049
+ const modifier = typeof effects.grass_color_modifier === "string" && MODIFIERS.has(effects.grass_color_modifier) ? effects.grass_color_modifier : void 0;
1050
+ const water = biomeColor(effects.water_color);
1051
+ const grass = biomeColor(effects.grass_color);
1052
+ const foliage = biomeColor(effects.foliage_color);
1053
+ const dryFoliage = biomeColor(effects.dry_foliage_color);
1054
+ return {
1055
+ temperature: biome.temperature,
1056
+ downfall: biome.downfall,
1057
+ ...water !== void 0 && water !== "#3f76e4" && { water },
1058
+ ...modifier && { modifier },
1059
+ ...grass !== void 0 && { grass },
1060
+ ...foliage !== void 0 && { foliage },
1061
+ ...dryFoliage !== void 0 && { dryFoliage }
1062
+ };
1063
+ }
1064
+ /**
1065
+ * Climates for the namespaces a pack exports: whatever their datapacks declare,
1066
+ * or for `minecraft` in a jar that declares none, the version's table.
1067
+ *
1068
+ * A mod pack carries only its own biomes. The vanilla pack is always fetched
1069
+ * beside it, so repeating vanilla's would be the same bytes in every one of the
1070
+ * hundreds of mod packs published.
1071
+ */
1072
+ async function buildBiomeClimates(resources, namespaces, version = "latest") {
1073
+ const pack = {};
1074
+ const unreadable = [];
1075
+ for (const namespace of namespaces) {
1076
+ const locators = await resources.listResources("biome", namespace);
1077
+ if (namespace === "minecraft" && locators.length === 0) Object.assign(pack, vanillaBiomesFor(version));
1078
+ for (const locator of locators) {
1079
+ const raw = await resources.getResource("biome", locator);
1080
+ if (raw === null) continue;
1081
+ let climate;
1082
+ try {
1083
+ climate = parseBiomeClimate(JSON.parse(raw.toString("utf8")));
1084
+ } catch {
1085
+ climate = null;
1086
+ }
1087
+ if (climate === null) {
1088
+ unreadable.push(locator.toString());
1089
+ continue;
1090
+ }
1091
+ pack[locator.toString()] = climate;
1092
+ }
1093
+ }
1094
+ return {
1095
+ pack,
1096
+ unreadable
1097
+ };
1098
+ }
1099
+ //#endregion
1100
+ export { buildBiomeClimates as a, VANILLA_BIOME_CLIMATES as i, LEGACY_BIOMES as n, parseBiomeClimate as o, PRE_JAR_BIOMES as r, vanillaBiomesFor as s, DEFAULT_WATER_COLOR as t };