sandstone 1.0.0 → 1.1.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 (295) hide show
  1. package/README.md +1 -1
  2. package/dist/_internal/index.d.ts +91 -16
  3. package/dist/_internal/index.js +1961 -306
  4. package/dist/_internal/index.js.map +1 -1
  5. package/dist/_internal/types/arguments/generated/_builtin/block_state_keys.d.ts +85 -1
  6. package/dist/_internal/types/arguments/generated/_builtin/block_states.d.ts +181 -1
  7. package/dist/_internal/types/arguments/generated/_dispatcher/block.d.ts +57 -21
  8. package/dist/_internal/types/arguments/generated/_dispatcher/block_entity.d.ts +5 -1
  9. package/dist/_internal/types/arguments/generated/_dispatcher/data_component_existence_predicate.d.ts +19 -0
  10. package/dist/_internal/types/arguments/generated/_dispatcher/resource.d.ts +24 -1
  11. package/dist/_internal/types/arguments/generated/_registry/advancements.d.ts +1 -1
  12. package/dist/_internal/types/arguments/generated/_registry/atlases.d.ts +1 -1
  13. package/dist/_internal/types/arguments/generated/_registry/attributes.d.ts +1 -1
  14. package/dist/_internal/types/arguments/generated/_registry/block_definitions.d.ts +1 -1
  15. package/dist/_internal/types/arguments/generated/_registry/block_entity_types.d.ts +1 -1
  16. package/dist/_internal/types/arguments/generated/_registry/block_predicate_types.d.ts +1 -1
  17. package/dist/_internal/types/arguments/generated/_registry/block_types.d.ts +1 -1
  18. package/dist/_internal/types/arguments/generated/_registry/blocks.d.ts +1 -1
  19. package/dist/_internal/types/arguments/generated/_registry/cat_sound_variants.d.ts +4 -0
  20. package/dist/_internal/types/arguments/generated/_registry/chicken_sound_variants.d.ts +4 -0
  21. package/dist/_internal/types/arguments/generated/_registry/chunk_statuses.d.ts +1 -1
  22. package/dist/_internal/types/arguments/generated/_registry/command_argument_types.d.ts +1 -1
  23. package/dist/_internal/types/arguments/generated/_registry/cow_sound_variants.d.ts +4 -0
  24. package/dist/_internal/types/arguments/generated/_registry/damage_types.d.ts +1 -1
  25. package/dist/_internal/types/arguments/generated/_registry/data_component_types.d.ts +1 -1
  26. package/dist/_internal/types/arguments/generated/_registry/entity_sub_predicate_types.d.ts +1 -1
  27. package/dist/_internal/types/arguments/generated/_registry/entity_types.d.ts +1 -1
  28. package/dist/_internal/types/arguments/generated/_registry/game_events.d.ts +1 -1
  29. package/dist/_internal/types/arguments/generated/_registry/game_rules.d.ts +1 -1
  30. package/dist/_internal/types/arguments/generated/_registry/item_definitions.d.ts +1 -1
  31. package/dist/_internal/types/arguments/generated/_registry/items.d.ts +1 -1
  32. package/dist/_internal/types/arguments/generated/_registry/jukebox_songs.d.ts +1 -1
  33. package/dist/_internal/types/arguments/generated/_registry/langs.d.ts +1 -1
  34. package/dist/_internal/types/arguments/generated/_registry/loot_pool_entry_types.d.ts +1 -1
  35. package/dist/_internal/types/arguments/generated/_registry/loot_tables.d.ts +1 -1
  36. package/dist/_internal/types/arguments/generated/_registry/models.d.ts +1 -1
  37. package/dist/_internal/types/arguments/generated/_registry/particle_types.d.ts +1 -1
  38. package/dist/_internal/types/arguments/generated/_registry/pig_sound_variants.d.ts +4 -0
  39. package/dist/_internal/types/arguments/generated/_registry/recipes.d.ts +1 -1
  40. package/dist/_internal/types/arguments/generated/_registry/sound_events.d.ts +1 -1
  41. package/dist/_internal/types/arguments/generated/_registry/sounds.d.ts +1 -1
  42. package/dist/_internal/types/arguments/generated/_registry/structures.d.ts +1 -1
  43. package/dist/_internal/types/arguments/generated/_registry/sulfur_cube_archetypes.d.ts +4 -0
  44. package/dist/_internal/types/arguments/generated/_registry/tag_blocks.d.ts +1 -1
  45. package/dist/_internal/types/arguments/generated/_registry/tag_damage_types.d.ts +1 -1
  46. package/dist/_internal/types/arguments/generated/_registry/tag_entity_types.d.ts +1 -1
  47. package/dist/_internal/types/arguments/generated/_registry/tag_items.d.ts +1 -1
  48. package/dist/_internal/types/arguments/generated/_registry/test_environment_definition_types.d.ts +1 -1
  49. package/dist/_internal/types/arguments/generated/_registry/textures.d.ts +1 -1
  50. package/dist/_internal/types/arguments/generated/_registry/translation_keys.d.ts +1 -1
  51. package/dist/_internal/types/arguments/generated/_registry/trigger_types.d.ts +1 -1
  52. package/dist/_internal/types/arguments/generated/_registry/trim_patterns.d.ts +1 -1
  53. package/dist/_internal/types/arguments/generated/_registry/villager_trades.d.ts +1 -1
  54. package/dist/_internal/types/arguments/generated/_registry/wolf_sound_variants.d.ts +1 -1
  55. package/dist/_internal/types/arguments/generated/_registry/wolf_variants.d.ts +1 -1
  56. package/dist/_internal/types/arguments/generated/_registry/worldgen_biomes.d.ts +1 -1
  57. package/dist/_internal/types/arguments/generated/_registry/worldgen_configured_carvers.d.ts +1 -1
  58. package/dist/_internal/types/arguments/generated/_registry/worldgen_configured_features.d.ts +1 -1
  59. package/dist/_internal/types/arguments/generated/_registry/worldgen_density_function_types.d.ts +1 -1
  60. package/dist/_internal/types/arguments/generated/_registry/worldgen_features.d.ts +1 -1
  61. package/dist/_internal/types/arguments/generated/_registry/worldgen_noises.d.ts +1 -1
  62. package/dist/_internal/types/arguments/generated/_registry/worldgen_placed_features.d.ts +1 -1
  63. package/dist/_internal/types/arguments/generated/_registry/worldgen_world_presets.d.ts +1 -1
  64. package/dist/_internal/types/arguments/generated/assets/atlas.d.ts +11 -2
  65. package/dist/_internal/types/arguments/generated/assets/block_state_definition.d.ts +25 -0
  66. package/dist/_internal/types/arguments/generated/assets/credits.d.ts +53 -0
  67. package/dist/_internal/types/arguments/generated/assets/equipment.d.ts +4 -5
  68. package/dist/_internal/types/arguments/generated/assets/item_definition.d.ts +29 -31
  69. package/dist/_internal/types/arguments/generated/assets/model.d.ts +126 -0
  70. package/dist/_internal/types/arguments/generated/assets/shader/program.d.ts +3 -0
  71. package/dist/_internal/types/arguments/generated/assets/sounds.d.ts +1 -1
  72. package/dist/_internal/types/arguments/generated/assets/texture_meta.d.ts +168 -28
  73. package/dist/_internal/types/arguments/generated/data/advancement/predicate.d.ts +170 -56
  74. package/dist/_internal/types/arguments/generated/data/advancement/trigger.d.ts +18 -0
  75. package/dist/_internal/types/arguments/generated/data/advancement.d.ts +7 -4
  76. package/dist/_internal/types/arguments/generated/data/chat_type.d.ts +7 -2
  77. package/dist/_internal/types/arguments/generated/data/decorated_pot_pattern.d.ts +8 -0
  78. package/dist/_internal/types/arguments/generated/data/dialog/input.d.ts +21 -0
  79. package/dist/_internal/types/arguments/generated/data/dialog.d.ts +5 -5
  80. package/dist/_internal/types/arguments/generated/data/enchantment/effect_component.d.ts +25 -25
  81. package/dist/_internal/types/arguments/generated/data/gametest/test_environment.d.ts +19 -1
  82. package/dist/_internal/types/arguments/generated/data/gametest.d.ts +1 -1
  83. package/dist/_internal/types/arguments/generated/data/item_modifier.d.ts +2 -1
  84. package/dist/_internal/types/arguments/generated/data/loot/condition.d.ts +84 -86
  85. package/dist/_internal/types/arguments/generated/data/loot/function.d.ts +261 -232
  86. package/dist/_internal/types/arguments/generated/data/loot.d.ts +10 -13
  87. package/dist/_internal/types/arguments/generated/data/predicate.d.ts +2 -1
  88. package/dist/_internal/types/arguments/generated/data/recipe.d.ts +58 -1
  89. package/dist/_internal/types/arguments/generated/data/slot_source.d.ts +91 -0
  90. package/dist/_internal/types/arguments/generated/data/structure.d.ts +59 -0
  91. package/dist/_internal/types/arguments/generated/data/sulfur_cube_archetype.d.ts +84 -0
  92. package/dist/_internal/types/arguments/generated/data/trim.d.ts +7 -1
  93. package/dist/_internal/types/arguments/generated/data/util.d.ts +7 -0
  94. package/dist/_internal/types/arguments/generated/data/variants/painting.d.ts +2 -2
  95. package/dist/_internal/types/arguments/generated/data/villager_trade.d.ts +4 -4
  96. package/dist/_internal/types/arguments/generated/data/worldgen/biome.d.ts +18 -0
  97. package/dist/_internal/types/arguments/generated/data/worldgen/carver.d.ts +24 -0
  98. package/dist/_internal/types/arguments/generated/data/worldgen/density_function.d.ts +28 -2
  99. package/dist/_internal/types/arguments/generated/data/worldgen/dimension/biome_source.d.ts +4 -0
  100. package/dist/_internal/types/arguments/generated/data/worldgen/dimension.d.ts +2 -2
  101. package/dist/_internal/types/arguments/generated/data/worldgen/feature/block_predicate.d.ts +7 -1
  102. package/dist/_internal/types/arguments/generated/data/worldgen/feature/tree.d.ts +54 -6
  103. package/dist/_internal/types/arguments/generated/data/worldgen/feature.d.ts +285 -115
  104. package/dist/_internal/types/arguments/generated/data/worldgen/material_condition.d.ts +93 -0
  105. package/dist/_internal/types/arguments/generated/data/worldgen/material_rule.d.ts +35 -0
  106. package/dist/_internal/types/arguments/generated/data/worldgen/noise_settings.d.ts +6 -2
  107. package/dist/_internal/types/arguments/generated/data/worldgen/processor_list.d.ts +18 -2
  108. package/dist/_internal/types/arguments/generated/data/worldgen/structure.d.ts +72 -2
  109. package/dist/_internal/types/arguments/generated/data/worldgen/structure_set.d.ts +4 -4
  110. package/dist/_internal/types/arguments/generated/dispatcher.d.ts +5 -3
  111. package/dist/_internal/types/arguments/generated/pack.d.ts +7 -0
  112. package/dist/_internal/types/arguments/generated/registry-sets.d.ts +9 -4
  113. package/dist/_internal/types/arguments/generated/registry.d.ts +15 -5
  114. package/dist/_internal/types/arguments/generated/resource-paths.d.ts +15 -0
  115. package/dist/_internal/types/arguments/generated/resources.d.ts +13 -1
  116. package/dist/_internal/types/arguments/generated/util/effect.d.ts +105 -3
  117. package/dist/_internal/types/arguments/generated/util/particle.d.ts +72 -1
  118. package/dist/_internal/types/arguments/generated/util/slot.d.ts +1 -84
  119. package/dist/_internal/types/arguments/generated/util/text.d.ts +191 -1
  120. package/dist/_internal/types/arguments/generated/util.d.ts +1 -0
  121. package/dist/_internal/types/arguments/generated/world/block/decorated_pot.d.ts +3 -5
  122. package/dist/_internal/types/arguments/generated/world/block/furnace.d.ts +3 -0
  123. package/dist/_internal/types/arguments/generated/world/block/potent_sulfur.d.ts +10 -0
  124. package/dist/_internal/types/arguments/generated/world/block/test_instance_block.d.ts +46 -1
  125. package/dist/_internal/types/arguments/generated/world/block/vault.d.ts +59 -0
  126. package/dist/_internal/types/arguments/generated/world/component/block.d.ts +6 -0
  127. package/dist/_internal/types/arguments/generated/world/component/item.d.ts +21 -6
  128. package/dist/_internal/types/arguments/generated/world/component/predicate.d.ts +4 -1
  129. package/dist/_internal/types/arguments/generated/world/component.d.ts +2 -1
  130. package/dist/_internal/types/arguments/generated/world/entity/boat.d.ts +15 -2
  131. package/dist/_internal/types/arguments/generated/world/entity/display.d.ts +34 -0
  132. package/dist/_internal/types/arguments/generated/world/entity/mob/breedable/chicken.d.ts +1 -1
  133. package/dist/_internal/types/arguments/generated/world/entity/mob/breedable/cow.d.ts +1 -1
  134. package/dist/_internal/types/arguments/generated/world/entity/mob/breedable/saddled.d.ts +1 -1
  135. package/dist/_internal/types/arguments/generated/world/entity/mob/breedable/tamable.d.ts +1 -1
  136. package/dist/_internal/types/arguments/generated/world/entity/mob/copper_golem.d.ts +3 -3
  137. package/dist/_internal/types/arguments/generated/world/entity/mob/happy_ghast.d.ts +5 -0
  138. package/dist/_internal/types/arguments/generated/world/entity/mob/player.d.ts +21 -0
  139. package/dist/_internal/types/arguments/generated/world/entity/mob/shulker.d.ts +2 -2
  140. package/dist/_internal/types/arguments/generated/world/entity/mob/slime.d.ts +20 -2
  141. package/dist/_internal/types/arguments/generated/world/entity/mob.d.ts +50 -7
  142. package/dist/_internal/types/arguments/generated/world/item/map.d.ts +12 -0
  143. package/dist/_internal/types/arguments/generated/world/item/shield.d.ts +26 -0
  144. package/dist/_internal/types/core/resources/datapack/decoratedPotPattern.d.ts +24 -0
  145. package/dist/_internal/types/core/resources/datapack/index.d.ts +3 -0
  146. package/dist/_internal/types/core/resources/datapack/slotSource.d.ts +24 -0
  147. package/dist/_internal/types/core/resources/datapack/sulfurCubeArchetype.d.ts +24 -0
  148. package/dist/_internal/types/pack/pack.d.ts +5 -2
  149. package/dist/_internal/types/variables/ResolveNBT.d.ts +1 -1
  150. package/dist/browser/sandstone.esm.js +1961 -306
  151. package/dist/browser/sandstone.esm.js.map +1 -1
  152. package/dist/exports/arguments/index.d.ts +1 -1
  153. package/dist/exports/arguments/index.js +1 -1
  154. package/dist/exports/core/index.d.ts +1 -1
  155. package/dist/exports/core/index.js +1 -1
  156. package/dist/exports/index.d.ts +1 -1
  157. package/dist/exports/index.js +1 -1
  158. package/package.json +2 -2
  159. package/src/arguments/generated/_builtin/block_state_keys.ts +112 -0
  160. package/src/arguments/generated/_builtin/block_states.ts +208 -0
  161. package/src/arguments/generated/_dispatcher/block.ts +68 -20
  162. package/src/arguments/generated/_dispatcher/block_entity.ts +5 -0
  163. package/src/arguments/generated/_dispatcher/data_component_existence_predicate.ts +34 -0
  164. package/src/arguments/generated/_dispatcher/resource.ts +29 -0
  165. package/src/arguments/generated/_registry/advancements.ts +71 -0
  166. package/src/arguments/generated/_registry/atlases.ts +0 -2
  167. package/src/arguments/generated/_registry/attributes.ts +5 -0
  168. package/src/arguments/generated/_registry/block_definitions.ts +28 -0
  169. package/src/arguments/generated/_registry/block_entity_types.ts +1 -1
  170. package/src/arguments/generated/_registry/block_predicate_types.ts +1 -0
  171. package/src/arguments/generated/_registry/block_types.ts +3 -1
  172. package/src/arguments/generated/_registry/blocks.ts +28 -0
  173. package/src/arguments/generated/_registry/cat_sound_variants.ts +11 -0
  174. package/src/arguments/generated/_registry/chicken_sound_variants.ts +11 -0
  175. package/src/arguments/generated/_registry/command_argument_types.ts +1 -1
  176. package/src/arguments/generated/_registry/cow_sound_variants.ts +11 -0
  177. package/src/arguments/generated/_registry/damage_types.ts +1 -0
  178. package/src/arguments/generated/_registry/data_component_types.ts +1 -0
  179. package/src/arguments/generated/_registry/entity_sub_predicate_types.ts +25 -6
  180. package/src/arguments/generated/_registry/entity_types.ts +1 -0
  181. package/src/arguments/generated/_registry/game_events.ts +1 -0
  182. package/src/arguments/generated/_registry/item_definitions.ts +31 -0
  183. package/src/arguments/generated/_registry/items.ts +31 -0
  184. package/src/arguments/generated/_registry/jukebox_songs.ts +1 -0
  185. package/src/arguments/generated/_registry/langs.ts +5 -0
  186. package/src/arguments/generated/_registry/loot_tables.ts +29 -0
  187. package/src/arguments/generated/_registry/models.ts +294 -42
  188. package/src/arguments/generated/_registry/particle_types.ts +8 -0
  189. package/src/arguments/generated/_registry/pig_sound_variants.ts +12 -0
  190. package/src/arguments/generated/_registry/recipes.ts +70 -0
  191. package/src/arguments/generated/_registry/sound_events.ts +66 -0
  192. package/src/arguments/generated/_registry/sounds.ts +307 -0
  193. package/src/arguments/generated/_registry/structures.ts +10 -0
  194. package/src/arguments/generated/_registry/sulfur_cube_archetypes.ts +21 -0
  195. package/src/arguments/generated/_registry/tag_blocks.ts +18 -1
  196. package/src/arguments/generated/_registry/tag_damage_types.ts +1 -0
  197. package/src/arguments/generated/_registry/tag_entity_types.ts +1 -0
  198. package/src/arguments/generated/_registry/tag_items.ts +17 -0
  199. package/src/arguments/generated/_registry/test_environment_definition_types.ts +1 -0
  200. package/src/arguments/generated/_registry/textures.ts +233 -42
  201. package/src/arguments/generated/_registry/translation_keys.ts +316 -72
  202. package/src/arguments/generated/_registry/villager_trades.ts +1 -0
  203. package/src/arguments/generated/_registry/worldgen_biomes.ts +1 -0
  204. package/src/arguments/generated/_registry/worldgen_configured_features.ts +5 -0
  205. package/src/arguments/generated/_registry/worldgen_density_function_types.ts +1 -1
  206. package/src/arguments/generated/_registry/worldgen_features.ts +5 -2
  207. package/src/arguments/generated/_registry/worldgen_noises.ts +1 -0
  208. package/src/arguments/generated/_registry/worldgen_placed_features.ts +4 -0
  209. package/src/arguments/generated/_registry/worldgen_world_presets.ts +1 -0
  210. package/src/arguments/generated/assets/atlas.ts +14 -2
  211. package/src/arguments/generated/assets/block_state_definition.ts +30 -0
  212. package/src/arguments/generated/assets/credits.ts +56 -0
  213. package/src/arguments/generated/assets/equipment.ts +4 -5
  214. package/src/arguments/generated/assets/item_definition.ts +31 -31
  215. package/src/arguments/generated/assets/model.ts +133 -0
  216. package/src/arguments/generated/assets/shader/program.ts +4 -0
  217. package/src/arguments/generated/assets/sounds.ts +1 -1
  218. package/src/arguments/generated/assets/texture_meta.ts +174 -28
  219. package/src/arguments/generated/data/advancement/predicate.ts +218 -58
  220. package/src/arguments/generated/data/advancement/trigger.ts +20 -0
  221. package/src/arguments/generated/data/advancement.ts +8 -4
  222. package/src/arguments/generated/data/chat_type.ts +8 -2
  223. package/src/arguments/generated/data/decorated_pot_pattern.ts +8 -0
  224. package/src/arguments/generated/data/dialog/input.ts +22 -0
  225. package/src/arguments/generated/data/dialog.ts +5 -5
  226. package/src/arguments/generated/data/enchantment/effect_component.ts +25 -25
  227. package/src/arguments/generated/data/gametest/test_environment.ts +24 -0
  228. package/src/arguments/generated/data/gametest.ts +1 -2
  229. package/src/arguments/generated/data/item_modifier.ts +3 -1
  230. package/src/arguments/generated/data/loot/condition.ts +129 -112
  231. package/src/arguments/generated/data/loot/function.ts +362 -280
  232. package/src/arguments/generated/data/loot.ts +14 -13
  233. package/src/arguments/generated/data/predicate.ts +3 -1
  234. package/src/arguments/generated/data/recipe.ts +66 -1
  235. package/src/arguments/generated/data/slot_source.ts +119 -0
  236. package/src/arguments/generated/data/structure.ts +63 -0
  237. package/src/arguments/generated/data/sulfur_cube_archetype.ts +92 -0
  238. package/src/arguments/generated/data/trim.ts +9 -1
  239. package/src/arguments/generated/data/util.ts +8 -0
  240. package/src/arguments/generated/data/variants/painting.ts +2 -2
  241. package/src/arguments/generated/data/villager_trade.ts +4 -4
  242. package/src/arguments/generated/data/worldgen/biome.ts +24 -0
  243. package/src/arguments/generated/data/worldgen/carver.ts +28 -0
  244. package/src/arguments/generated/data/worldgen/density_function.ts +29 -1
  245. package/src/arguments/generated/data/worldgen/dimension/biome_source.ts +5 -0
  246. package/src/arguments/generated/data/worldgen/dimension.ts +4 -2
  247. package/src/arguments/generated/data/worldgen/feature/block_predicate.ts +8 -0
  248. package/src/arguments/generated/data/worldgen/feature/tree.ts +58 -4
  249. package/src/arguments/generated/data/worldgen/feature.ts +320 -124
  250. package/src/arguments/generated/data/worldgen/material_condition.ts +119 -0
  251. package/src/arguments/generated/data/worldgen/material_rule.ts +52 -0
  252. package/src/arguments/generated/data/worldgen/noise_settings.ts +7 -2
  253. package/src/arguments/generated/data/worldgen/processor_list.ts +24 -1
  254. package/src/arguments/generated/data/worldgen/structure.ts +79 -2
  255. package/src/arguments/generated/data/worldgen/structure_set.ts +13 -4
  256. package/src/arguments/generated/dispatcher.ts +11 -4
  257. package/src/arguments/generated/pack.ts +8 -0
  258. package/src/arguments/generated/registry-sets.ts +18 -8
  259. package/src/arguments/generated/registry.ts +27 -4
  260. package/src/arguments/generated/resource-paths.ts +3 -0
  261. package/src/arguments/generated/resources.ts +6 -0
  262. package/src/arguments/generated/util/effect.ts +107 -3
  263. package/src/arguments/generated/util/particle.ts +80 -0
  264. package/src/arguments/generated/util/slot.ts +1 -103
  265. package/src/arguments/generated/util/text.ts +207 -0
  266. package/src/arguments/generated/util.ts +2 -0
  267. package/src/arguments/generated/world/block/decorated_pot.ts +3 -5
  268. package/src/arguments/generated/world/block/furnace.ts +4 -0
  269. package/src/arguments/generated/world/block/potent_sulfur.ts +11 -0
  270. package/src/arguments/generated/world/block/test_instance_block.ts +48 -1
  271. package/src/arguments/generated/world/block/vault.ts +62 -0
  272. package/src/arguments/generated/world/component/block.ts +7 -0
  273. package/src/arguments/generated/world/component/item.ts +28 -5
  274. package/src/arguments/generated/world/component/predicate.ts +6 -0
  275. package/src/arguments/generated/world/component.ts +4 -1
  276. package/src/arguments/generated/world/entity/boat.ts +18 -1
  277. package/src/arguments/generated/world/entity/display.ts +35 -0
  278. package/src/arguments/generated/world/entity/mob/breedable/chicken.ts +1 -1
  279. package/src/arguments/generated/world/entity/mob/breedable/cow.ts +1 -1
  280. package/src/arguments/generated/world/entity/mob/breedable/saddled.ts +1 -1
  281. package/src/arguments/generated/world/entity/mob/breedable/tamable.ts +1 -1
  282. package/src/arguments/generated/world/entity/mob/copper_golem.ts +3 -3
  283. package/src/arguments/generated/world/entity/mob/happy_ghast.ts +6 -0
  284. package/src/arguments/generated/world/entity/mob/player.ts +21 -0
  285. package/src/arguments/generated/world/entity/mob/shulker.ts +2 -2
  286. package/src/arguments/generated/world/entity/mob/slime.ts +22 -2
  287. package/src/arguments/generated/world/entity/mob.ts +53 -7
  288. package/src/arguments/generated/world/item/map.ts +14 -0
  289. package/src/arguments/generated/world/item/shield.ts +27 -0
  290. package/src/core/resources/datapack/decoratedPotPattern.ts +47 -0
  291. package/src/core/resources/datapack/index.ts +3 -0
  292. package/src/core/resources/datapack/slotSource.ts +47 -0
  293. package/src/core/resources/datapack/sulfurCubeArchetype.ts +47 -0
  294. package/src/pack/pack.ts +33 -0
  295. package/src/sandstone.ts +24 -0
@@ -1,7 +1,8 @@
1
+ import type { LootConditionOf } from "./loot/condition.js";
2
+ import type { LootFunctionOf } from "./loot/function.js";
3
+ import type { SlotSource } from "./slot_source.js";
1
4
  import type { NumberProvider } from "./util.js";
2
- import type { SymbolLootCondition, SymbolLootFunction } from "../dispatcher.js";
3
5
  import type { Registry } from "../registry.js";
4
- import type { SlotSource } from "../util/slot.js";
5
6
  import type { RootNBT } from "../../nbt.js";
6
7
  import type { LootTableClass, NBTInt } from "../../../../index.js";
7
8
  export type BlockEntityTarget = 'block_entity';
@@ -23,19 +24,11 @@ export type ItemPoolEntry = ({
23
24
  name: Registry['minecraft:item'];
24
25
  } & SingletonPoolEntry);
25
26
  export type ItemStackTarget = 'tool';
26
- export type LootCondition = NonNullable<({
27
- [S in Extract<Registry['minecraft:loot_condition_type'], string>]?: ({
28
- condition: S;
29
- } & (S extends keyof SymbolLootCondition ? SymbolLootCondition[S] : RootNBT));
30
- }[Registry['minecraft:loot_condition_type']])>;
27
+ export type LootCondition = LootConditionOf<Registry['minecraft:loot_condition_type']>;
31
28
  export type LootConditionType = ('alternative' | 'block_state_property' | 'damage_source_properties' | 'entity_properties' | 'entity_scores' | 'inverted' | 'killed_by_player' | 'location_check' | 'match_tool' | 'random_chance' | 'random_chance_with_looting' | 'reference' | 'survives_explosion' | 'table_bonus' | 'time_check' | 'weather_check');
32
- export type LootContextType = ('empty' | 'chest' | 'command' | 'selector' | 'fishing' | 'entity' | 'gift' | 'barter' | 'advancement_reward' | 'advancement_entity' | 'advancement_location' | 'generic' | 'block' | 'block_use' | 'equipment' | 'archaeology' | 'vault' | 'shearing' | 'enchanted_damage' | 'enchanted_item' | 'enchanted_location' | 'enchanted_entity' | 'hit_block' | 'block_interact' | 'entity_interact');
29
+ export type LootContextType = ('empty' | 'chest' | 'command' | 'selector' | 'fishing' | 'entity' | 'gift' | 'barter' | 'advancement_reward' | 'advancement_entity' | 'advancement_location' | 'generic' | 'block' | 'block_use' | 'equipment' | 'archaeology' | 'vault' | 'shearing' | 'enchanted_damage' | 'enchanted_item' | 'enchanted_location' | 'enchanted_entity' | 'hit_block' | 'block_interact' | 'entity_interact' | 'villager_trade' | 'command_slot_source');
33
30
  export type LootEntryType = ('alternatives' | 'dynamic' | 'empty' | 'group' | 'item' | 'loot_table' | 'sequence' | 'tag');
34
- export type LootFunction = NonNullable<({
35
- [S in Extract<Registry['minecraft:loot_function_type'], string>]?: ({
36
- function: S;
37
- } & (S extends keyof SymbolLootFunction ? SymbolLootFunction[S] : RootNBT));
38
- }[Registry['minecraft:loot_function_type']])>;
31
+ export type LootFunction = LootFunctionOf<Registry['minecraft:loot_function_type'], Registry['minecraft:loot_condition_type']>;
39
32
  export type LootFunctionType = ('apply_bonus' | 'copy_name' | 'copy_nbt' | 'copy_state' | 'enchant_randomly' | 'enchant_with_levels' | 'explosion_decay' | 'exploration_map' | 'fill_player_head' | 'furnace_smelt' | 'limit_count' | 'looting_enchant' | 'set_attributes' | 'set_contents' | 'set_count' | 'set_damage' | 'set_loot_table' | 'set_lore' | 'set_name' | 'set_nbt' | 'set_stew_effect');
40
33
  export type LootPool = {
41
34
  rolls: NumberProvider;
@@ -81,6 +74,8 @@ export type LootTable = {
81
74
  * - HitBlock(`hit_block`)
82
75
  * - BlockInteract(`block_interact`)
83
76
  * - EntityInteract(`entity_interact`)
77
+ * - VillagerTrade(`villager_trade`)
78
+ * - CommandSlotSource(`command_slot_source`)
84
79
  */
85
80
  type?: (LootContextType | `minecraft:${LootContextType}`);
86
81
  pools?: Array<LootPool>;
@@ -95,6 +90,8 @@ export type LootTable = {
95
90
  export type LootTablePoolEntry = ({
96
91
  value: ((Registry['minecraft:loot_table'] | LootTableClass) | LootTable);
97
92
  } & SingletonPoolEntry);
93
+ export type NonReferenceLootCondition = LootConditionOf<Registry['minecraft:loot_condition_type']>;
94
+ export type NonReferenceLootFunction = LootFunctionOf<Registry['minecraft:loot_function_type'], Registry['minecraft:loot_condition_type']>;
98
95
  export type SingletonPoolEntry = ({
99
96
  /**
100
97
  * Value:
@@ -1,2 +1,3 @@
1
- import type { LootCondition } from "./loot.js";
1
+ import type { LootCondition, NonReferenceLootCondition } from "./loot.js";
2
+ export type NonReferencePredicate = (NonReferenceLootCondition | Array<NonReferenceLootCondition>);
2
3
  export type Predicate = (LootCondition | Array<LootCondition>);
@@ -2,7 +2,7 @@ import type { MinMaxBounds } from "./util.js";
2
2
  import type { Registry } from "../registry.js";
3
3
  import type { FireworkShape } from "../world/component/item.js";
4
4
  import type { ItemStack, ItemStackTemplate } from "../world/item.js";
5
- import type { PatternKeys, StringSmallerThan4 } from "../../index.js";
5
+ import type { CRAFTING_INGREDIENT, PatternKeys, StringSmallerThan4 } from "../../index.js";
6
6
  import type { NBTFloat, NBTInt, NBTList, TagClass, TrimPatternClass } from "../../../../index.js";
7
7
  export type CookingBookCategory = ('food' | 'blocks' | 'misc');
8
8
  export type CookingBookInfo = {
@@ -77,6 +77,9 @@ export type CraftingImbue = (NotificationInfo & CraftingBookInfo & {
77
77
  material: Ingredient;
78
78
  result: ItemStackTemplate;
79
79
  });
80
+ export type CraftingIngredients = ({
81
+ [Key in Extract<CRAFTING_INGREDIENT, string>]?: Ingredient;
82
+ });
80
83
  export type CraftingShaped<P1 extends string = string, P2 extends string = string, P3 extends string = string> = (NotificationInfo & CraftingBookInfo & {
81
84
  pattern: [
82
85
  StringSmallerThan4<P1>,
@@ -271,6 +274,9 @@ export type CraftingTransmute = (NotificationInfo & CraftingBookInfo & {
271
274
  */
272
275
  result: (ItemStack | Registry['minecraft:item']);
273
276
  });
277
+ export type FireworkShapeIngredients = ({
278
+ [Key in Extract<FireworkShape, string>]?: Ingredient;
279
+ });
274
280
  /**
275
281
  * *either*
276
282
  *
@@ -284,6 +290,12 @@ export type Ingredient = (NBTList<Registry['minecraft:item'], {
284
290
  leftExclusive: false;
285
291
  min: 1;
286
292
  }> | (Registry['minecraft:item'] | `#${Registry['minecraft:tag/item']}` | TagClass<'item'>));
293
+ export type IngredientItem = {
294
+ item: Registry['minecraft:item'];
295
+ };
296
+ export type IngredientTag = {
297
+ tag: (Registry['minecraft:tag/item']);
298
+ };
287
299
  export type IngredientValue = ({
288
300
  item: Registry['minecraft:item'];
289
301
  } | {
@@ -300,11 +312,39 @@ export type NotificationInfo = {
300
312
  */
301
313
  show_notification?: boolean;
302
314
  };
315
+ export type OptionalSmithingIngredients = {
316
+ /**
317
+ * Ingredient specifying an item to be trimmed. (eg. `"#minecraft:trimmable_armor"`)
318
+ */
319
+ base?: Ingredient;
320
+ /**
321
+ * Material that will be used. (eg. `"#minecraft:trim_materials"`)
322
+ */
323
+ addition?: Ingredient;
324
+ /**
325
+ * Template item that will be used for the pattern.
326
+ */
327
+ template?: Ingredient;
328
+ };
303
329
  export type Recipe = NonNullable<({
304
330
  [S in Extract<Registry['minecraft:recipe_serializer'], string>]?: ({
305
331
  type: S;
306
332
  } & (S extends keyof SymbolRecipeSerializer ? SymbolRecipeSerializer[S] : SymbolRecipeSerializer<'%unknown'>));
307
333
  }[Registry['minecraft:recipe_serializer']])>;
334
+ export type RequiredSmithingIngredients = {
335
+ /**
336
+ * Ingredient specifying an item to be trimmed. (eg. `{ "tag": "minecraft:trimmable_armor" }`)
337
+ */
338
+ base: Ingredient;
339
+ /**
340
+ * Material that will be used. (eg. `{ "tag": "minecraft:trim_materials" }`)
341
+ */
342
+ addition: Ingredient;
343
+ /**
344
+ * Template item that will be used for the pattern.
345
+ */
346
+ template: Ingredient;
347
+ };
308
348
  export type Smelting = (NotificationInfo & CookingBookInfo & {
309
349
  ingredient: Ingredient;
310
350
  result: ItemStackTemplate;
@@ -316,6 +356,20 @@ export type Smithing = {
316
356
  addition: IngredientValue;
317
357
  result: ItemResult;
318
358
  };
359
+ export type SmithingIngredients = {
360
+ /**
361
+ * Ingredient specifying an item to be trimmed. (eg. `"#minecraft:trimmable_armor"`)
362
+ */
363
+ base?: Ingredient;
364
+ /**
365
+ * Material that will be used. (eg. `"#minecraft:trim_materials"`)
366
+ */
367
+ addition?: Ingredient;
368
+ /**
369
+ * Template item that will be used for the pattern.
370
+ */
371
+ template?: Ingredient;
372
+ };
319
373
  export type SmithingTransform = (NotificationInfo & {
320
374
  /**
321
375
  * Ingredient specifying an item to be transformed.
@@ -335,6 +389,9 @@ export type SmithingTransform = (NotificationInfo & {
335
389
  */
336
390
  template?: Ingredient;
337
391
  });
392
+ export type SmithingTransformResult = {
393
+ item: Registry['minecraft:item'];
394
+ };
338
395
  export type SmithingTrim = (NotificationInfo & {
339
396
  /**
340
397
  * Ingredient specifying an item to be trimmed.
@@ -0,0 +1,91 @@
1
+ import type { ItemPredicate } from "./advancement/predicate.js";
2
+ import type { BlockEntityTarget, EntityTarget } from "./loot.js";
3
+ import type { ContainerComponents } from "./loot/function.js";
4
+ import type { Registry } from "../registry.js";
5
+ import type { ENTITY_SLOTS } from "../../index.js";
6
+ import type { NBTObject, RootNBT } from "../../nbt.js";
7
+ import type { LiteralUnion, NBTInt, SlotSourceClass } from "../../../../index.js";
8
+ export type ContentsSlotSource<S extends NBTObject> = {
9
+ /**
10
+ * The slots to search.
11
+ */
12
+ slot_source: SlotSourceOf<S>;
13
+ /**
14
+ * If an item targeted by `slot_source` has this container component, selects all items inside.
15
+ *
16
+ * Value:
17
+ *
18
+ * - Container(`container`)
19
+ * - BundleContents(`bundle_contents`)
20
+ * - ChargedProjectiles(`charged_projectiles`)
21
+ */
22
+ component: (ContainerComponents | `minecraft:${ContainerComponents}`);
23
+ };
24
+ export type FilterSlotSource<S extends NBTObject> = {
25
+ slot_source: SlotSourceOf<S>;
26
+ item_filter: ItemPredicate;
27
+ };
28
+ export type GroupSlotSource<S extends NBTObject> = {
29
+ terms: Array<SlotSourceOf<S>>;
30
+ };
31
+ export type LimitCountSlotSource<S extends NBTObject> = {
32
+ slot_source: SlotSourceOf<S>;
33
+ /**
34
+ * Value:
35
+ * Range: 1..
36
+ */
37
+ limit: NBTInt<{
38
+ min: 1;
39
+ }>;
40
+ };
41
+ export type RangeSlotSource = ({
42
+ /**
43
+ * Value:
44
+ * *either*
45
+ *
46
+ *
47
+ *
48
+ * *or*
49
+ *
50
+ * *item 1*
51
+ */
52
+ source: (EntityTarget | BlockEntityTarget);
53
+ } & {
54
+ slots: LiteralUnion<ENTITY_SLOTS>;
55
+ });
56
+ export type SlotSource = SlotSourceOf<Registry['minecraft:slot_source_type']>;
57
+ export type SlotSourceOf<S extends NBTObject> = (TypedSlotSourceOf<S> | Array<TypedSlotSourceOf<S>>);
58
+ export type TypedSlotSourceOf<S extends NBTObject> = ({
59
+ [S in keyof SlotSourceDispatcherMap<S>]?: ({
60
+ type: S;
61
+ } & (S extends keyof SlotSourceDispatcherMap<S> ? SlotSourceDispatcherMap<S>[S] : RootNBT));
62
+ }[keyof SlotSourceDispatcherMap<S>]);
63
+ type SlotSourceDispatcherMap<S extends NBTObject> = {
64
+ 'contents': SlotSourceContents<S>;
65
+ 'minecraft:contents': SlotSourceContents<S>;
66
+ 'empty': SlotSourceEmpty<S>;
67
+ 'minecraft:empty': SlotSourceEmpty<S>;
68
+ 'filtered': SlotSourceFiltered<S>;
69
+ 'minecraft:filtered': SlotSourceFiltered<S>;
70
+ 'group': SlotSourceGroup<S>;
71
+ 'minecraft:group': SlotSourceGroup<S>;
72
+ 'limit_slots': SlotSourceLimitSlots<S>;
73
+ 'minecraft:limit_slots': SlotSourceLimitSlots<S>;
74
+ 'reference': SlotSourceReference<S>;
75
+ 'minecraft:reference': SlotSourceReference<S>;
76
+ 'slot_range': SlotSourceSlotRange<S>;
77
+ 'minecraft:slot_range': SlotSourceSlotRange<S>;
78
+ };
79
+ type SlotSourceKeys = keyof SlotSourceDispatcherMap<NBTObject>;
80
+ type SlotSourceFallback<S extends NBTObject> = (SlotSourceContents<S> | SlotSourceEmpty<S> | SlotSourceFiltered<S> | SlotSourceGroup<S> | SlotSourceLimitSlots<S> | SlotSourceReference<S> | SlotSourceSlotRange<S>);
81
+ export type SlotSourceContents<S extends NBTObject> = ContentsSlotSource<S>;
82
+ export type SlotSourceEmpty<S extends NBTObject> = Record<string, never>;
83
+ export type SlotSourceFiltered<S extends NBTObject> = FilterSlotSource<S>;
84
+ export type SlotSourceGroup<S extends NBTObject> = GroupSlotSource<S>;
85
+ export type SlotSourceLimitSlots<S extends NBTObject> = LimitCountSlotSource<S>;
86
+ export type SlotSourceReference<S extends NBTObject> = {
87
+ name: (`${string}:${string}` | SlotSourceClass);
88
+ };
89
+ export type SlotSourceSlotRange<S extends NBTObject> = RangeSlotSource;
90
+ export type SymbolSlotSource<S extends NBTObject, CASE extends 'map' | 'keys' | '%fallback' | '%none' | '%unknown' = 'map'> = CASE extends 'map' ? SlotSourceDispatcherMap<S> : CASE extends 'keys' ? SlotSourceKeys : CASE extends '%fallback' ? SlotSourceFallback<S> : never;
91
+ export {};
@@ -10,6 +10,65 @@ export type BlockPalette = ({
10
10
  */
11
11
  palettes: Array<Array<BlockState>>;
12
12
  });
13
+ export type Palette = {
14
+ palette: Array<BlockState>;
15
+ };
16
+ export type RandomizedPalette = {
17
+ /**
18
+ * Sets of different block states used in the structure, a random palette gets selected based on coordinates.
19
+ */
20
+ palettes: Array<Array<BlockState>>;
21
+ };
22
+ export type StructureBlock = {
23
+ /**
24
+ * Value:
25
+ * Range: 0..
26
+ */
27
+ state: NBTInt<{
28
+ min: 0;
29
+ }>;
30
+ /**
31
+ * Value:
32
+ * List length range: 3
33
+ */
34
+ pos: NBTList<NBTInt<{
35
+ min: 0;
36
+ }>, {
37
+ leftExclusive: false;
38
+ rightExclusive: false;
39
+ min: 3;
40
+ max: 3;
41
+ }>;
42
+ nbt?: SymbolBlock<'%fallback'>;
43
+ };
44
+ export type StructureEntity = {
45
+ /**
46
+ * Value:
47
+ * List length range: 3
48
+ */
49
+ pos: NBTList<(NBTDouble<{
50
+ leftExclusive: false;
51
+ min: 0;
52
+ }> | number), {
53
+ leftExclusive: false;
54
+ rightExclusive: false;
55
+ min: 3;
56
+ max: 3;
57
+ }>;
58
+ /**
59
+ * Value:
60
+ * List length range: 3
61
+ */
62
+ blockPos: NBTList<NBTInt<{
63
+ min: 0;
64
+ }>, {
65
+ leftExclusive: false;
66
+ rightExclusive: false;
67
+ min: 3;
68
+ max: 3;
69
+ }>;
70
+ nbt: AnyEntity;
71
+ };
13
72
  export type StructureNBT = ({
14
73
  /**
15
74
  * [Data version](https://minecraft.wiki/w/Data_version).
@@ -0,0 +1,84 @@
1
+ import type { SoundEventRef } from "./util.js";
2
+ import type { FloatProvider } from "./worldgen.js";
3
+ import type { Registry } from "../registry.js";
4
+ import type { ModernAttributeModifier } from "../world/entity/mob.js";
5
+ import type { DamageTypeClass, NBTFloat, NBTInt, TagClass } from "../../../../index.js";
6
+ export type AttributeEntry = ({
7
+ /**
8
+ * Attribute type to modify.
9
+ */
10
+ attribute: Registry['minecraft:attribute'];
11
+ } & ModernAttributeModifier);
12
+ export type ContactDamage = {
13
+ damage_type: (Registry['minecraft:damage_type'] | DamageTypeClass);
14
+ amount: FloatProvider<NBTFloat<{
15
+ leftExclusive: false;
16
+ min: 0;
17
+ }>>;
18
+ /**
19
+ * Whether the damage is attributed to the sulfur cube.
20
+ */
21
+ attribute_to_source: boolean;
22
+ };
23
+ export type ExplosionData = {
24
+ /**
25
+ * The fuse time in ticks when ignited. \
26
+ * When ignited by an explosion, the fuse will be a random value between `explosion_fuse / 8` and `3 * explosion_fuse / 8`.
27
+ *
28
+ * Value:
29
+ * Range: 1..
30
+ */
31
+ fuse: NBTInt<{
32
+ min: 1;
33
+ }>;
34
+ /**
35
+ * The explosion power.
36
+ *
37
+ * Value:
38
+ * Range: 0..
39
+ */
40
+ power: NBTInt<{
41
+ min: 0;
42
+ }>;
43
+ /**
44
+ * Whether the explosion causes fire.
45
+ */
46
+ causes_fire: boolean;
47
+ };
48
+ export type KnockbackModifiers = {
49
+ /**
50
+ * The horizontal power of the knockback.
51
+ */
52
+ horizontal_power: NBTFloat;
53
+ /**
54
+ * The vertical power of the knockback.
55
+ */
56
+ vertical_power: NBTFloat;
57
+ };
58
+ export type SoundSettings = {
59
+ hit_sound: SoundEventRef;
60
+ push_sound: SoundEventRef;
61
+ /**
62
+ * Minimum impact speed required to trigger the sound.
63
+ */
64
+ push_sound_impulse_threshold: NBTFloat;
65
+ /**
66
+ * Cooldown in seconds for the sound effect.
67
+ */
68
+ push_sound_cooldown: NBTFloat;
69
+ };
70
+ export type SulfurCubeArchetype = {
71
+ items: ((Registry['minecraft:item'] | `#${Registry['minecraft:tag/item']}` | TagClass<'item'>) | Array<Registry['minecraft:item']>);
72
+ /**
73
+ * Defaults to `false`.
74
+ */
75
+ buoyant?: boolean;
76
+ /**
77
+ * When present, sulfur cube with this archetype will explode when ignited.
78
+ */
79
+ explosion?: ExplosionData;
80
+ contact_damage?: ContactDamage;
81
+ knockback_modifiers: KnockbackModifiers;
82
+ attribute_modifiers: Array<AttributeEntry>;
83
+ sound_settings: SoundSettings;
84
+ };
@@ -1,9 +1,12 @@
1
1
  import type { Registry } from "../registry.js";
2
2
  import type { Text } from "../util/text.js";
3
3
  export type ArmorMaterial = ('leather' | 'chainmail' | 'iron' | 'gold' | 'diamond' | 'netherite' | 'turtle');
4
+ export type OldTrimMaterialOverrides = ({
5
+ [Key in Extract<(ArmorMaterial | `minecraft:${ArmorMaterial}`), string>]?: string;
6
+ });
4
7
  export type TrimMaterial = {
5
8
  /**
6
- * ID which will be used in the resource pack.
9
+ * Permutation key which will be used in the resource pack.
7
10
  */
8
11
  asset_name: string;
9
12
  /**
@@ -17,6 +20,9 @@ export type TrimMaterial = {
17
20
  [Key in Extract<Registry['minecraft:equipment'], string>]?: string;
18
21
  });
19
22
  };
23
+ export type TrimMaterialOverrides = ({
24
+ [Key in Extract<Registry['minecraft:equipment'], string>]?: string;
25
+ });
20
26
  export type TrimPattern = {
21
27
  /**
22
28
  * ID of the pattern that will be used in the resource pack as an overlay on the armor.
@@ -183,6 +183,13 @@ export type UniformNumberProvider = {
183
183
  min?: NumberProvider;
184
184
  max?: NumberProvider;
185
185
  };
186
+ export type WeightedSoundEvent = {
187
+ sound_id: (`${string}:${string}` | '');
188
+ /**
189
+ * Range in blocks. If the player is further than this range from the source of the sound, the sound will be inaudible. If omitted, the sound will have a variable range.
190
+ */
191
+ range?: NBTFloat;
192
+ };
186
193
  type NbtProviderDispatcherMap = {
187
194
  'context': NbtProviderContext;
188
195
  'minecraft:context': NbtProviderContext;
@@ -27,6 +27,6 @@ export type PaintingVariant = {
27
27
  min: 1;
28
28
  max: 16;
29
29
  }>;
30
- title: Text;
31
- author: Text;
30
+ title?: Text;
31
+ author?: Text;
32
32
  };
@@ -1,5 +1,5 @@
1
- import type { ItemModifier } from "./item_modifier.js";
2
- import type { Predicate } from "./predicate.js";
1
+ import type { NonReferenceItemModifier } from "./item_modifier.js";
2
+ import type { NonReferencePredicate } from "./predicate.js";
3
3
  import type { NumberProvider } from "./util.js";
4
4
  import type { Registry } from "../registry.js";
5
5
  import type { ItemStackTemplate, TradeCost } from "../world/item.js";
@@ -25,7 +25,7 @@ export type VillagerTrade = {
25
25
  * Some modifiers can affect the price through the `additional_trade_cost` transient component. \
26
26
  * The `additional_trade_cost` component is not saved on the offered item.
27
27
  */
28
- given_item_modifiers?: Array<ItemModifier>;
28
+ given_item_modifiers?: Array<NonReferenceItemModifier>;
29
29
  /**
30
30
  * Maximum number of uses of this trade before the villager has to restock. Defaults to `4`. \
31
31
  * Clamps to a positive integer.
@@ -45,7 +45,7 @@ export type VillagerTrade = {
45
45
  * Check whether the trade should be offered by the merchant. \
46
46
  * Does **not** support the `reference` predicate.
47
47
  */
48
- merchant_predicate?: Predicate;
48
+ merchant_predicate?: NonReferencePredicate;
49
49
  /**
50
50
  * If the offered enchanted book has the specified enchantments, the price will be affected by doubling the `additional_trade_cost` transient component.
51
51
  */
@@ -1,9 +1,11 @@
1
1
  import type { SoundEventRef } from "../util.js";
2
2
  import type { PositionalEnvironmentAttributeMap } from "./attribute.js";
3
3
  import type { CarverRef } from "./carver.js";
4
+ import type { CarveStep } from "./.js";
4
5
  import type { PlacedFeatureRef } from "./feature/placement.js";
5
6
  import type { Registry } from "../../registry.js";
6
7
  import type { StringRGB } from "../../util/color.js";
8
+ import type { Particle } from "../../util/particle.js";
7
9
  import type { NBTDouble, NBTFloat, NBTInt, NBTList, TagClass } from "../../../../../index.js";
8
10
  export type Biome = {
9
11
  attributes?: PositionalEnvironmentAttributeMap;
@@ -82,6 +84,19 @@ export type BiomeMusic = ({
82
84
  */
83
85
  replace_current_music?: boolean;
84
86
  });
87
+ export type BiomeParticle = {
88
+ options: Particle;
89
+ /**
90
+ * Value:
91
+ * Range: 0..1
92
+ */
93
+ probability: NBTFloat<{
94
+ leftExclusive: false;
95
+ rightExclusive: false;
96
+ min: 0;
97
+ max: 1;
98
+ }>;
99
+ };
85
100
  export type BiomeSoundAdditions = {
86
101
  sound: SoundEventRef;
87
102
  /**
@@ -95,6 +110,9 @@ export type BiomeSoundAdditions = {
95
110
  max: 1;
96
111
  }>;
97
112
  };
113
+ export type CarversPerStep = ({
114
+ [Key in Extract<CarveStep, string>]?: (Array<CarverRef> | (Registry['minecraft:worldgen/configured_carver'] | `#${string}:${string}` | TagClass<'worldgen/configured_carver'>));
115
+ });
98
116
  export type GrassColorModifier = ('none' | 'dark_forest' | 'swamp');
99
117
  export type MobCategory = ('monster' | 'creature' | 'ambient' | 'axolotls' | 'underground_water_creature' | 'water_creature' | 'water_ambient' | 'misc');
100
118
  export type MobSpawnCost = {
@@ -21,6 +21,24 @@ export type CanyonShape = {
21
21
  vertical_radius_default_factor: NBTFloat;
22
22
  vertical_radius_center_factor: NBTFloat;
23
23
  };
24
+ export type CarverConfigBase<S = undefined> = ({
25
+ /**
26
+ * Value:
27
+ * Range: 0..1
28
+ */
29
+ probability: NBTFloat<{
30
+ leftExclusive: false;
31
+ rightExclusive: false;
32
+ min: 0;
33
+ max: 1;
34
+ }>;
35
+ replaceable?: (Array<Registry['minecraft:block']> | (Registry['minecraft:block'] | `#${Registry['minecraft:tag/block']}` | TagClass<'block'>));
36
+ } & {
37
+ y: HeightProvider;
38
+ yScale: FloatProvider<NBTFloat>;
39
+ lava_level: VerticalAnchor;
40
+ debug_settings?: CarverDebugSettings;
41
+ } & (S extends keyof SymbolCarverConfig ? SymbolCarverConfig[S] : RootNBT));
24
42
  export type CarverDebugSettings = {
25
43
  debug_mode?: boolean;
26
44
  air_state: BlockState;
@@ -60,6 +78,12 @@ export type ConfiguredCarver = NonNullable<({
60
78
  } & (S extends keyof SymbolCarverConfig ? SymbolCarverConfig[S] : RootNBT));
61
79
  };
62
80
  }[Registry['minecraft:worldgen/carver']])>;
81
+ export type ModernCarverConfig = {
82
+ y: HeightProvider;
83
+ yScale: FloatProvider<NBTFloat>;
84
+ lava_level: VerticalAnchor;
85
+ debug_settings?: CarverDebugSettings;
86
+ };
63
87
  type CarverConfigDispatcherMap = {
64
88
  'canyon': CarverConfigCanyon;
65
89
  'minecraft:canyon': CarverConfigCanyon;
@@ -1,6 +1,6 @@
1
1
  import type { Registry } from "../../registry.js";
2
2
  import type { RootNBT } from "../../../nbt.js";
3
- import type { NBTFloat, NBTInt } from "../../../../../index.js";
3
+ import type { NBTFloat, NBTInt, NBTList } from "../../../../../index.js";
4
4
  export type Clamp = {
5
5
  input: DensityFunction;
6
6
  min: NoiseRange;
@@ -35,6 +35,29 @@ export type FindTopSurface = {
35
35
  min: 1;
36
36
  }>;
37
37
  };
38
+ export type InvervalSelect = {
39
+ input: DensityFunctionRef;
40
+ /**
41
+ * Must have exactly one fewer element than `functions`.
42
+ *
43
+ * Value:
44
+ * List length range: 1..
45
+ */
46
+ thresholds: NBTList<NoiseRange, {
47
+ leftExclusive: false;
48
+ min: 1;
49
+ }>;
50
+ /**
51
+ * Must have exactly one more element than `thresholds`.
52
+ *
53
+ * Value:
54
+ * List length range: 2..
55
+ */
56
+ functions: NBTList<DensityFunctionRef, {
57
+ leftExclusive: false;
58
+ min: 1;
59
+ }>;
60
+ };
38
61
  export type Noise = {
39
62
  noise: Registry['minecraft:worldgen/noise'];
40
63
  xz_scale: NBTFloat;
@@ -162,6 +185,8 @@ type DensityFunctionDispatcherMap = {
162
185
  'minecraft:half_negative': DensityFunctionHalfNegative;
163
186
  'interpolated': DensityFunctionInterpolated;
164
187
  'minecraft:interpolated': DensityFunctionInterpolated;
188
+ 'interval_select': DensityFunctionIntervalSelect;
189
+ 'minecraft:interval_select': DensityFunctionIntervalSelect;
165
190
  'invert': DensityFunctionInvert;
166
191
  'minecraft:invert': DensityFunctionInvert;
167
192
  'max': DensityFunctionMax;
@@ -202,7 +227,7 @@ type DensityFunctionDispatcherMap = {
202
227
  'minecraft:y_clamped_gradient': DensityFunctionYClampedGradient;
203
228
  };
204
229
  type DensityFunctionKeys = keyof DensityFunctionDispatcherMap;
205
- type DensityFunctionFallback = (DensityFunctionAbs | DensityFunctionAdd | DensityFunctionBlendDensity | DensityFunctionCache2d | DensityFunctionCacheAllInCell | DensityFunctionCacheOnce | DensityFunctionClamp | DensityFunctionConstant | DensityFunctionCube | DensityFunctionFindTopSurface | DensityFunctionFlatCache | DensityFunctionHalfNegative | DensityFunctionInterpolated | DensityFunctionInvert | DensityFunctionMax | DensityFunctionMin | DensityFunctionMul | DensityFunctionNoise | DensityFunctionOldBlendedNoise | DensityFunctionQuarterNegative | DensityFunctionRangeChoice | DensityFunctionShift | DensityFunctionShiftA | DensityFunctionShiftB | DensityFunctionShiftedNoise | DensityFunctionSlide | DensityFunctionSpline | DensityFunctionSquare | DensityFunctionSqueeze | DensityFunctionTerrainShaperSpline | DensityFunctionWeirdScaledSampler | DensityFunctionYClampedGradient);
230
+ type DensityFunctionFallback = (DensityFunctionAbs | DensityFunctionAdd | DensityFunctionBlendDensity | DensityFunctionCache2d | DensityFunctionCacheAllInCell | DensityFunctionCacheOnce | DensityFunctionClamp | DensityFunctionConstant | DensityFunctionCube | DensityFunctionFindTopSurface | DensityFunctionFlatCache | DensityFunctionHalfNegative | DensityFunctionInterpolated | DensityFunctionIntervalSelect | DensityFunctionInvert | DensityFunctionMax | DensityFunctionMin | DensityFunctionMul | DensityFunctionNoise | DensityFunctionOldBlendedNoise | DensityFunctionQuarterNegative | DensityFunctionRangeChoice | DensityFunctionShift | DensityFunctionShiftA | DensityFunctionShiftB | DensityFunctionShiftedNoise | DensityFunctionSlide | DensityFunctionSpline | DensityFunctionSquare | DensityFunctionSqueeze | DensityFunctionTerrainShaperSpline | DensityFunctionWeirdScaledSampler | DensityFunctionYClampedGradient);
206
231
  type DensityFunctionAbs = OneArgument;
207
232
  type DensityFunctionAdd = TwoArguments;
208
233
  type DensityFunctionBlendDensity = OneArgument;
@@ -216,6 +241,7 @@ type DensityFunctionFindTopSurface = FindTopSurface;
216
241
  type DensityFunctionFlatCache = OneArgument;
217
242
  type DensityFunctionHalfNegative = OneArgument;
218
243
  type DensityFunctionInterpolated = OneArgument;
244
+ type DensityFunctionIntervalSelect = InvervalSelect;
219
245
  type DensityFunctionInvert = OneArgument;
220
246
  type DensityFunctionMax = TwoArguments;
221
247
  type DensityFunctionMin = TwoArguments;
@@ -1,6 +1,10 @@
1
1
  import type { Registry } from "../../../registry.js";
2
2
  import type { RootNBT } from "../../../../nbt.js";
3
3
  import type { NBTDouble, NBTFloat, NBTInt, NBTList, NBTLong, TagClass } from "../../../../../../index.js";
4
+ export type BiomeNoiseEntry = {
5
+ biome: Registry['minecraft:worldgen/biome'];
6
+ parameters: ClimateParameters;
7
+ };
4
8
  export type BiomeSource = NonNullable<({
5
9
  [S in Extract<Registry['minecraft:worldgen/biome_source'], string>]?: ({
6
10
  type: S;
@@ -74,9 +74,9 @@ export type DimensionType = {
74
74
  */
75
75
  cardinal_light?: CardinalLightType;
76
76
  /**
77
- * Block tag defining what blocks keep fire infinitely burning.
77
+ * Defining what blocks keep fire infinitely burning.
78
78
  */
79
- infiniburn: (`#${Registry['minecraft:tag/block']}` | TagClass<'block'>);
79
+ infiniburn: ((Registry['minecraft:block'] | `#${Registry['minecraft:tag/block']}` | TagClass<'block'>) | Array<Registry['minecraft:block']>);
80
80
  /**
81
81
  * The minimum height in which blocks can exist.
82
82
  *