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 'sandstone/arguments/generated/data/loot/condition.ts'
2
+ import type { LootFunctionOf } from 'sandstone/arguments/generated/data/loot/function.ts'
3
+ import type { SlotSource } from 'sandstone/arguments/generated/data/slot_source.ts'
1
4
  import type { NumberProvider } from 'sandstone/arguments/generated/data/util.ts'
2
- import type { SymbolLootCondition, SymbolLootFunction } from 'sandstone/arguments/generated/dispatcher.ts'
3
5
  import type { Registry } from 'sandstone/arguments/generated/registry.ts'
4
- import type { SlotSource } from 'sandstone/arguments/generated/util/slot.ts'
5
6
  import type { RootNBT } from 'sandstone/arguments/nbt.ts'
6
7
  import type { LootTableClass, NBTInt } from 'sandstone'
7
8
 
@@ -40,11 +41,7 @@ export type ItemPoolEntry = ({
40
41
 
41
42
  export type ItemStackTarget = 'tool'
42
43
 
43
- export type LootCondition = NonNullable<({
44
- [S in Extract<Registry['minecraft:loot_condition_type'], string>]?: ({
45
- condition: S,
46
- } & (S extends keyof SymbolLootCondition ? SymbolLootCondition[S] : RootNBT))
47
- }[Registry['minecraft:loot_condition_type']])>
44
+ export type LootCondition = LootConditionOf<Registry['minecraft:loot_condition_type']>
48
45
 
49
46
  export type LootConditionType = (
50
47
  | 'alternative'
@@ -89,7 +86,9 @@ export type LootContextType = (
89
86
  | 'enchanted_entity'
90
87
  | 'hit_block'
91
88
  | 'block_interact'
92
- | 'entity_interact')
89
+ | 'entity_interact'
90
+ | 'villager_trade'
91
+ | 'command_slot_source')
93
92
 
94
93
  export type LootEntryType = (
95
94
  | 'alternatives'
@@ -101,11 +100,7 @@ export type LootEntryType = (
101
100
  | 'sequence'
102
101
  | 'tag')
103
102
 
104
- export type LootFunction = NonNullable<({
105
- [S in Extract<Registry['minecraft:loot_function_type'], string>]?: ({
106
- function: S,
107
- } & (S extends keyof SymbolLootFunction ? SymbolLootFunction[S] : RootNBT))
108
- }[Registry['minecraft:loot_function_type']])>
103
+ export type LootFunction = LootFunctionOf<Registry['minecraft:loot_function_type'], Registry['minecraft:loot_condition_type']>
109
104
 
110
105
  export type LootFunctionType = (
111
106
  | 'apply_bonus'
@@ -177,6 +172,8 @@ export type LootTable = {
177
172
  * - HitBlock(`hit_block`)
178
173
  * - BlockInteract(`block_interact`)
179
174
  * - EntityInteract(`entity_interact`)
175
+ * - VillagerTrade(`villager_trade`)
176
+ * - CommandSlotSource(`command_slot_source`)
180
177
  */
181
178
  type?: (LootContextType | `minecraft:${LootContextType}`),
182
179
  pools?: Array<LootPool>,
@@ -193,6 +190,10 @@ export type LootTablePoolEntry = ({
193
190
  value: ((Registry['minecraft:loot_table'] | LootTableClass) | LootTable),
194
191
  } & SingletonPoolEntry)
195
192
 
193
+ export type NonReferenceLootCondition = LootConditionOf<Registry['minecraft:loot_condition_type']>
194
+
195
+ export type NonReferenceLootFunction = LootFunctionOf<Registry['minecraft:loot_function_type'], Registry['minecraft:loot_condition_type']>
196
+
196
197
  export type SingletonPoolEntry = ({
197
198
  /**
198
199
  * Value:
@@ -1,3 +1,5 @@
1
- import type { LootCondition } from 'sandstone/arguments/generated/data/loot.ts'
1
+ import type { LootCondition, NonReferenceLootCondition } from 'sandstone/arguments/generated/data/loot.ts'
2
+
3
+ export type NonReferencePredicate = (NonReferenceLootCondition | Array<NonReferenceLootCondition>)
2
4
 
3
5
  export type Predicate = (LootCondition | Array<LootCondition>)
@@ -2,7 +2,7 @@ import type { MinMaxBounds } from 'sandstone/arguments/generated/data/util.ts'
2
2
  import type { Registry } from 'sandstone/arguments/generated/registry.ts'
3
3
  import type { FireworkShape } from 'sandstone/arguments/generated/world/component/item.ts'
4
4
  import type { ItemStack, ItemStackTemplate } from 'sandstone/arguments/generated/world/item.ts'
5
- import type { PatternKeys, StringSmallerThan4 } from 'sandstone/arguments'
5
+ import type { CRAFTING_INGREDIENT, PatternKeys, StringSmallerThan4 } from 'sandstone/arguments'
6
6
  import type { NBTFloat, NBTInt, NBTList, TagClass, TrimPatternClass } from 'sandstone'
7
7
 
8
8
  export type CookingBookCategory = ('food' | 'blocks' | 'misc')
@@ -85,6 +85,10 @@ export type CraftingImbue = (NotificationInfo & CraftingBookInfo & {
85
85
  result: ItemStackTemplate,
86
86
  })
87
87
 
88
+ export type CraftingIngredients = ({
89
+ [Key in Extract<CRAFTING_INGREDIENT, string>]?: Ingredient
90
+ })
91
+
88
92
  export type CraftingShaped<P1 extends string = string, P2 extends string = string, P3 extends string = string> = (NotificationInfo & CraftingBookInfo & {
89
93
  pattern: [
90
94
  StringSmallerThan4<P1>,
@@ -289,6 +293,10 @@ export type CraftingTransmute = (NotificationInfo & CraftingBookInfo & {
289
293
  result: (ItemStack | Registry['minecraft:item']),
290
294
  })
291
295
 
296
+ export type FireworkShapeIngredients = ({
297
+ [Key in Extract<FireworkShape, string>]?: Ingredient
298
+ })
299
+
292
300
  /**
293
301
  * *either*
294
302
  *
@@ -303,6 +311,14 @@ export type Ingredient = (NBTList<Registry['minecraft:item'], {
303
311
  min: 1,
304
312
  }> | (Registry['minecraft:item'] | `#${Registry['minecraft:tag/item']}` | TagClass<'item'>))
305
313
 
314
+ export type IngredientItem = {
315
+ item: Registry['minecraft:item'],
316
+ }
317
+
318
+ export type IngredientTag = {
319
+ tag: (Registry['minecraft:tag/item']),
320
+ }
321
+
306
322
  export type IngredientValue = ({
307
323
  item: Registry['minecraft:item'],
308
324
  } | {
@@ -322,12 +338,42 @@ export type NotificationInfo = {
322
338
  show_notification?: boolean,
323
339
  }
324
340
 
341
+ export type OptionalSmithingIngredients = {
342
+ /**
343
+ * Ingredient specifying an item to be trimmed. (eg. `"#minecraft:trimmable_armor"`)
344
+ */
345
+ base?: Ingredient,
346
+ /**
347
+ * Material that will be used. (eg. `"#minecraft:trim_materials"`)
348
+ */
349
+ addition?: Ingredient,
350
+ /**
351
+ * Template item that will be used for the pattern.
352
+ */
353
+ template?: Ingredient,
354
+ }
355
+
325
356
  export type Recipe = NonNullable<({
326
357
  [S in Extract<Registry['minecraft:recipe_serializer'], string>]?: ({
327
358
  type: S,
328
359
  } & (S extends keyof SymbolRecipeSerializer ? SymbolRecipeSerializer[S] : SymbolRecipeSerializer<'%unknown'>))
329
360
  }[Registry['minecraft:recipe_serializer']])>
330
361
 
362
+ export type RequiredSmithingIngredients = {
363
+ /**
364
+ * Ingredient specifying an item to be trimmed. (eg. `{ "tag": "minecraft:trimmable_armor" }`)
365
+ */
366
+ base: Ingredient,
367
+ /**
368
+ * Material that will be used. (eg. `{ "tag": "minecraft:trim_materials" }`)
369
+ */
370
+ addition: Ingredient,
371
+ /**
372
+ * Template item that will be used for the pattern.
373
+ */
374
+ template: Ingredient,
375
+ }
376
+
331
377
  export type Smelting = (NotificationInfo & CookingBookInfo & {
332
378
  ingredient: Ingredient,
333
379
  result: ItemStackTemplate,
@@ -341,6 +387,21 @@ export type Smithing = {
341
387
  result: ItemResult,
342
388
  }
343
389
 
390
+ export type SmithingIngredients = {
391
+ /**
392
+ * Ingredient specifying an item to be trimmed. (eg. `"#minecraft:trimmable_armor"`)
393
+ */
394
+ base?: Ingredient,
395
+ /**
396
+ * Material that will be used. (eg. `"#minecraft:trim_materials"`)
397
+ */
398
+ addition?: Ingredient,
399
+ /**
400
+ * Template item that will be used for the pattern.
401
+ */
402
+ template?: Ingredient,
403
+ }
404
+
344
405
  export type SmithingTransform = (NotificationInfo & {
345
406
  /**
346
407
  * Ingredient specifying an item to be transformed.
@@ -361,6 +422,10 @@ export type SmithingTransform = (NotificationInfo & {
361
422
  template?: Ingredient,
362
423
  })
363
424
 
425
+ export type SmithingTransformResult = {
426
+ item: Registry['minecraft:item'],
427
+ }
428
+
364
429
  export type SmithingTrim = (NotificationInfo & {
365
430
  /**
366
431
  * Ingredient specifying an item to be trimmed.
@@ -0,0 +1,119 @@
1
+ import type { ItemPredicate } from 'sandstone/arguments/generated/data/advancement/predicate.ts'
2
+ import type { BlockEntityTarget, EntityTarget } from 'sandstone/arguments/generated/data/loot.ts'
3
+ import type { ContainerComponents } from 'sandstone/arguments/generated/data/loot/function.ts'
4
+ import type { Registry } from 'sandstone/arguments/generated/registry.ts'
5
+ import type { ENTITY_SLOTS } from 'sandstone/arguments'
6
+ import type { NBTObject, RootNBT } from 'sandstone/arguments/nbt.ts'
7
+ import type { LiteralUnion, NBTInt, SlotSourceClass } from 'sandstone'
8
+
9
+ export type ContentsSlotSource<S extends NBTObject> = {
10
+ /**
11
+ * The slots to search.
12
+ */
13
+ slot_source: SlotSourceOf<S>,
14
+ /**
15
+ * If an item targeted by `slot_source` has this container component, selects all items inside.
16
+ *
17
+ * Value:
18
+ *
19
+ * - Container(`container`)
20
+ * - BundleContents(`bundle_contents`)
21
+ * - ChargedProjectiles(`charged_projectiles`)
22
+ */
23
+ component: (ContainerComponents | `minecraft:${ContainerComponents}`),
24
+ }
25
+
26
+ export type FilterSlotSource<S extends NBTObject> = {
27
+ slot_source: SlotSourceOf<S>,
28
+ item_filter: ItemPredicate,
29
+ }
30
+
31
+ export type GroupSlotSource<S extends NBTObject> = {
32
+ terms: Array<SlotSourceOf<S>>,
33
+ }
34
+
35
+ export type LimitCountSlotSource<S extends NBTObject> = {
36
+ slot_source: SlotSourceOf<S>,
37
+ /**
38
+ * Value:
39
+ * Range: 1..
40
+ */
41
+ limit: NBTInt<{
42
+ min: 1,
43
+ }>,
44
+ }
45
+
46
+ export type RangeSlotSource = ({
47
+ /**
48
+ * Value:
49
+ * *either*
50
+ *
51
+ *
52
+ *
53
+ * *or*
54
+ *
55
+ * *item 1*
56
+ */
57
+ source: (EntityTarget | BlockEntityTarget),
58
+ } & {
59
+ slots: LiteralUnion<ENTITY_SLOTS>,
60
+ })
61
+
62
+ export type SlotSource = SlotSourceOf<Registry['minecraft:slot_source_type']>
63
+
64
+ export type SlotSourceOf<S extends NBTObject> = (TypedSlotSourceOf<S> | Array<TypedSlotSourceOf<S>>)
65
+
66
+ export type TypedSlotSourceOf<S extends NBTObject> = ({
67
+ [S in keyof SlotSourceDispatcherMap<S>]?: ({
68
+ type: S,
69
+ } & (S extends keyof SlotSourceDispatcherMap<S> ? SlotSourceDispatcherMap<S>[S] : RootNBT))
70
+ }[keyof SlotSourceDispatcherMap<S>])
71
+ type SlotSourceDispatcherMap<S extends NBTObject> = {
72
+ 'contents': SlotSourceContents<S>,
73
+ 'minecraft:contents': SlotSourceContents<S>,
74
+ 'empty': SlotSourceEmpty<S>,
75
+ 'minecraft:empty': SlotSourceEmpty<S>,
76
+ 'filtered': SlotSourceFiltered<S>,
77
+ 'minecraft:filtered': SlotSourceFiltered<S>,
78
+ 'group': SlotSourceGroup<S>,
79
+ 'minecraft:group': SlotSourceGroup<S>,
80
+ 'limit_slots': SlotSourceLimitSlots<S>,
81
+ 'minecraft:limit_slots': SlotSourceLimitSlots<S>,
82
+ 'reference': SlotSourceReference<S>,
83
+ 'minecraft:reference': SlotSourceReference<S>,
84
+ 'slot_range': SlotSourceSlotRange<S>,
85
+ 'minecraft:slot_range': SlotSourceSlotRange<S>,
86
+ }
87
+ type SlotSourceKeys = keyof SlotSourceDispatcherMap<NBTObject>
88
+ type SlotSourceFallback<S extends NBTObject> = (
89
+ | SlotSourceContents<S>
90
+ | SlotSourceEmpty<S>
91
+ | SlotSourceFiltered<S>
92
+ | SlotSourceGroup<S>
93
+ | SlotSourceLimitSlots<S>
94
+ | SlotSourceReference<S>
95
+ | SlotSourceSlotRange<S>)
96
+ export type SlotSourceContents<S extends NBTObject> = ContentsSlotSource<S>
97
+
98
+ export type SlotSourceEmpty<S extends NBTObject> = Record<string, never>
99
+
100
+ export type SlotSourceFiltered<S extends NBTObject> = FilterSlotSource<S>
101
+
102
+ export type SlotSourceGroup<S extends NBTObject> = GroupSlotSource<S>
103
+
104
+ export type SlotSourceLimitSlots<S extends NBTObject> = LimitCountSlotSource<S>
105
+
106
+ export type SlotSourceReference<S extends NBTObject> = {
107
+ name: (`${string}:${string}` | SlotSourceClass),
108
+ }
109
+
110
+ export type SlotSourceSlotRange<S extends NBTObject> = RangeSlotSource
111
+
112
+ export type SymbolSlotSource<S extends NBTObject, CASE extends
113
+ | 'map'
114
+ | 'keys'
115
+ | '%fallback'
116
+ | '%none'
117
+ | '%unknown' = 'map'> = CASE extends 'map'
118
+ ? SlotSourceDispatcherMap<S>
119
+ : CASE extends 'keys' ? SlotSourceKeys : CASE extends '%fallback' ? SlotSourceFallback<S> : never
@@ -12,6 +12,69 @@ export type BlockPalette = ({
12
12
  palettes: Array<Array<BlockState>>,
13
13
  })
14
14
 
15
+ export type Palette = {
16
+ palette: Array<BlockState>,
17
+ }
18
+
19
+ export type RandomizedPalette = {
20
+ /**
21
+ * Sets of different block states used in the structure, a random palette gets selected based on coordinates.
22
+ */
23
+ palettes: Array<Array<BlockState>>,
24
+ }
25
+
26
+ export type StructureBlock = {
27
+ /**
28
+ * Value:
29
+ * Range: 0..
30
+ */
31
+ state: NBTInt<{
32
+ min: 0,
33
+ }>,
34
+ /**
35
+ * Value:
36
+ * List length range: 3
37
+ */
38
+ pos: NBTList<NBTInt<{
39
+ min: 0,
40
+ }>, {
41
+ leftExclusive: false,
42
+ rightExclusive: false,
43
+ min: 3,
44
+ max: 3,
45
+ }>,
46
+ nbt?: SymbolBlock<'%fallback'>,
47
+ }
48
+
49
+ export type StructureEntity = {
50
+ /**
51
+ * Value:
52
+ * List length range: 3
53
+ */
54
+ pos: NBTList<(NBTDouble<{
55
+ leftExclusive: false,
56
+ min: 0,
57
+ }> | number), {
58
+ leftExclusive: false,
59
+ rightExclusive: false,
60
+ min: 3,
61
+ max: 3,
62
+ }>,
63
+ /**
64
+ * Value:
65
+ * List length range: 3
66
+ */
67
+ blockPos: NBTList<NBTInt<{
68
+ min: 0,
69
+ }>, {
70
+ leftExclusive: false,
71
+ rightExclusive: false,
72
+ min: 3,
73
+ max: 3,
74
+ }>,
75
+ nbt: AnyEntity,
76
+ }
77
+
15
78
  export type StructureNBT = ({
16
79
  /**
17
80
  * [Data version](https://minecraft.wiki/w/Data_version).
@@ -0,0 +1,92 @@
1
+ import type { SoundEventRef } from 'sandstone/arguments/generated/data/util.ts'
2
+ import type { FloatProvider } from 'sandstone/arguments/generated/data/worldgen.ts'
3
+ import type { Registry } from 'sandstone/arguments/generated/registry.ts'
4
+ import type { ModernAttributeModifier } from 'sandstone/arguments/generated/world/entity/mob.ts'
5
+ import type { DamageTypeClass, NBTFloat, NBTInt, TagClass } from 'sandstone'
6
+
7
+ export type AttributeEntry = ({
8
+ /**
9
+ * Attribute type to modify.
10
+ */
11
+ attribute: Registry['minecraft:attribute'],
12
+ } & ModernAttributeModifier)
13
+
14
+ export type ContactDamage = {
15
+ damage_type: (Registry['minecraft:damage_type'] | DamageTypeClass),
16
+ amount: FloatProvider<NBTFloat<{
17
+ leftExclusive: false,
18
+ min: 0,
19
+ }>>,
20
+ /**
21
+ * Whether the damage is attributed to the sulfur cube.
22
+ */
23
+ attribute_to_source: boolean,
24
+ }
25
+
26
+ export type ExplosionData = {
27
+ /**
28
+ * The fuse time in ticks when ignited. \
29
+ * When ignited by an explosion, the fuse will be a random value between `explosion_fuse / 8` and `3 * explosion_fuse / 8`.
30
+ *
31
+ * Value:
32
+ * Range: 1..
33
+ */
34
+ fuse: NBTInt<{
35
+ min: 1,
36
+ }>,
37
+ /**
38
+ * The explosion power.
39
+ *
40
+ * Value:
41
+ * Range: 0..
42
+ */
43
+ power: NBTInt<{
44
+ min: 0,
45
+ }>,
46
+ /**
47
+ * Whether the explosion causes fire.
48
+ */
49
+ causes_fire: boolean,
50
+ }
51
+
52
+ export type KnockbackModifiers = {
53
+ /**
54
+ * The horizontal power of the knockback.
55
+ */
56
+ horizontal_power: NBTFloat,
57
+ /**
58
+ * The vertical power of the knockback.
59
+ */
60
+ vertical_power: NBTFloat,
61
+ }
62
+
63
+ export type SoundSettings = {
64
+ hit_sound: SoundEventRef,
65
+ push_sound: SoundEventRef,
66
+ /**
67
+ * Minimum impact speed required to trigger the sound.
68
+ */
69
+ push_sound_impulse_threshold: NBTFloat,
70
+ /**
71
+ * Cooldown in seconds for the sound effect.
72
+ */
73
+ push_sound_cooldown: NBTFloat,
74
+ }
75
+
76
+ export type SulfurCubeArchetype = {
77
+ items: ((
78
+ | Registry['minecraft:item'] | `#${Registry['minecraft:tag/item']}` | TagClass<'item'>)
79
+ | Array<Registry['minecraft:item']>),
80
+ /**
81
+ * Defaults to `false`.
82
+ */
83
+ buoyant?: boolean,
84
+ /**
85
+ * When present, sulfur cube with this archetype will explode when ignited.
86
+ */
87
+ explosion?: ExplosionData,
88
+ contact_damage?: ContactDamage,
89
+ knockback_modifiers: KnockbackModifiers,
90
+ attribute_modifiers: Array<AttributeEntry>,
91
+ sound_settings: SoundSettings,
92
+ }
@@ -3,9 +3,13 @@ import type { Text } from 'sandstone/arguments/generated/util/text.ts'
3
3
 
4
4
  export type ArmorMaterial = ('leather' | 'chainmail' | 'iron' | 'gold' | 'diamond' | 'netherite' | 'turtle')
5
5
 
6
+ export type OldTrimMaterialOverrides = ({
7
+ [Key in Extract<(ArmorMaterial | `minecraft:${ArmorMaterial}`), string>]?: string
8
+ })
9
+
6
10
  export type TrimMaterial = {
7
11
  /**
8
- * ID which will be used in the resource pack.
12
+ * Permutation key which will be used in the resource pack.
9
13
  */
10
14
  asset_name: string,
11
15
  /**
@@ -20,6 +24,10 @@ export type TrimMaterial = {
20
24
  }),
21
25
  }
22
26
 
27
+ export type TrimMaterialOverrides = ({
28
+ [Key in Extract<Registry['minecraft:equipment'], string>]?: string
29
+ })
30
+
23
31
  export type TrimPattern = {
24
32
  /**
25
33
  * ID of the pattern that will be used in the resource pack as an overlay on the armor.
@@ -231,6 +231,14 @@ export type UniformNumberProvider = {
231
231
  min?: NumberProvider,
232
232
  max?: NumberProvider,
233
233
  }
234
+
235
+ export type WeightedSoundEvent = {
236
+ sound_id: (`${string}:${string}` | ''),
237
+ /**
238
+ * 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.
239
+ */
240
+ range?: NBTFloat,
241
+ }
234
242
  type NbtProviderDispatcherMap = {
235
243
  'context': NbtProviderContext,
236
244
  'minecraft:context': NbtProviderContext,
@@ -28,6 +28,6 @@ export type PaintingVariant = {
28
28
  min: 1,
29
29
  max: 16,
30
30
  }>,
31
- title: Text,
32
- author: Text,
31
+ title?: Text,
32
+ author?: Text,
33
33
  }
@@ -1,5 +1,5 @@
1
- import type { ItemModifier } from 'sandstone/arguments/generated/data/item_modifier.ts'
2
- import type { Predicate } from 'sandstone/arguments/generated/data/predicate.ts'
1
+ import type { NonReferenceItemModifier } from 'sandstone/arguments/generated/data/item_modifier.ts'
2
+ import type { NonReferencePredicate } from 'sandstone/arguments/generated/data/predicate.ts'
3
3
  import type { NumberProvider } from 'sandstone/arguments/generated/data/util.ts'
4
4
  import type { Registry } from 'sandstone/arguments/generated/registry.ts'
5
5
  import type { ItemStackTemplate, TradeCost } from 'sandstone/arguments/generated/world/item.ts'
@@ -26,7 +26,7 @@ export type VillagerTrade = {
26
26
  * Some modifiers can affect the price through the `additional_trade_cost` transient component. \
27
27
  * The `additional_trade_cost` component is not saved on the offered item.
28
28
  */
29
- given_item_modifiers?: Array<ItemModifier>,
29
+ given_item_modifiers?: Array<NonReferenceItemModifier>,
30
30
  /**
31
31
  * Maximum number of uses of this trade before the villager has to restock. Defaults to `4`. \
32
32
  * Clamps to a positive integer.
@@ -46,7 +46,7 @@ export type VillagerTrade = {
46
46
  * Check whether the trade should be offered by the merchant. \
47
47
  * Does **not** support the `reference` predicate.
48
48
  */
49
- merchant_predicate?: Predicate,
49
+ merchant_predicate?: NonReferencePredicate,
50
50
  /**
51
51
  * If the offered enchanted book has the specified enchantments, the price will be affected by doubling the `additional_trade_cost` transient component.
52
52
  */
@@ -1,9 +1,11 @@
1
1
  import type { SoundEventRef } from 'sandstone/arguments/generated/data/util.ts'
2
2
  import type { PositionalEnvironmentAttributeMap } from 'sandstone/arguments/generated/data/worldgen/attribute.ts'
3
3
  import type { CarverRef } from 'sandstone/arguments/generated/data/worldgen/carver.ts'
4
+ import type { CarveStep } from 'sandstone/arguments/generated/data/worldgen.ts'
4
5
  import type { PlacedFeatureRef } from 'sandstone/arguments/generated/data/worldgen/feature/placement.ts'
5
6
  import type { Registry } from 'sandstone/arguments/generated/registry.ts'
6
7
  import type { StringRGB } from 'sandstone/arguments/generated/util/color.ts'
8
+ import type { Particle } from 'sandstone/arguments/generated/util/particle.ts'
7
9
  import type { NBTDouble, NBTFloat, NBTInt, NBTList, TagClass } from 'sandstone'
8
10
 
9
11
  export type Biome = {
@@ -110,6 +112,20 @@ export type BiomeMusic = ({
110
112
  replace_current_music?: boolean,
111
113
  })
112
114
 
115
+ export type BiomeParticle = {
116
+ options: Particle,
117
+ /**
118
+ * Value:
119
+ * Range: 0..1
120
+ */
121
+ probability: NBTFloat<{
122
+ leftExclusive: false,
123
+ rightExclusive: false,
124
+ min: 0,
125
+ max: 1,
126
+ }>,
127
+ }
128
+
113
129
  export type BiomeSoundAdditions = {
114
130
  sound: SoundEventRef,
115
131
  /**
@@ -124,6 +140,14 @@ export type BiomeSoundAdditions = {
124
140
  }>,
125
141
  }
126
142
 
143
+ export type CarversPerStep = ({
144
+ [Key in Extract<CarveStep, string>]?: (
145
+ | Array<CarverRef> | (
146
+ | Registry['minecraft:worldgen/configured_carver']
147
+ | `#${string}:${string}`
148
+ | TagClass<'worldgen/configured_carver'>))
149
+ })
150
+
127
151
  export type GrassColorModifier = ('none' | 'dark_forest' | 'swamp')
128
152
 
129
153
  export type MobCategory = (
@@ -24,6 +24,27 @@ export type CanyonShape = {
24
24
  vertical_radius_center_factor: NBTFloat,
25
25
  }
26
26
 
27
+ export type CarverConfigBase<S = undefined> = ({
28
+ /**
29
+ * Value:
30
+ * Range: 0..1
31
+ */
32
+ probability: NBTFloat<{
33
+ leftExclusive: false,
34
+ rightExclusive: false,
35
+ min: 0,
36
+ max: 1,
37
+ }>,
38
+ replaceable?: (
39
+ | Array<Registry['minecraft:block']> | (
40
+ Registry['minecraft:block'] | `#${Registry['minecraft:tag/block']}` | TagClass<'block'>)),
41
+ } & {
42
+ y: HeightProvider,
43
+ yScale: FloatProvider<NBTFloat>,
44
+ lava_level: VerticalAnchor,
45
+ debug_settings?: CarverDebugSettings,
46
+ } & (S extends keyof SymbolCarverConfig ? SymbolCarverConfig[S] : RootNBT))
47
+
27
48
  export type CarverDebugSettings = {
28
49
  debug_mode?: boolean,
29
50
  air_state: BlockState,
@@ -68,6 +89,13 @@ export type ConfiguredCarver = NonNullable<({
68
89
  } & (S extends keyof SymbolCarverConfig ? SymbolCarverConfig[S] : RootNBT)),
69
90
  }
70
91
  }[Registry['minecraft:worldgen/carver']])>
92
+
93
+ export type ModernCarverConfig = {
94
+ y: HeightProvider,
95
+ yScale: FloatProvider<NBTFloat>,
96
+ lava_level: VerticalAnchor,
97
+ debug_settings?: CarverDebugSettings,
98
+ }
71
99
  type CarverConfigDispatcherMap = {
72
100
  'canyon': CarverConfigCanyon,
73
101
  'minecraft:canyon': CarverConfigCanyon,