sandstone 1.1.4 → 1.2.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 (429) hide show
  1. package/dist/_internal/index.d.ts +34 -230
  2. package/dist/_internal/index.d.ts.map +1 -1
  3. package/dist/_internal/index.js +2237 -518
  4. package/dist/_internal/index.js.map +1 -1
  5. package/dist/_internal/types/arguments/generated/_builtin/block_state_keys.d.ts +175 -1
  6. package/dist/_internal/types/arguments/generated/_builtin/block_state_keys.d.ts.map +1 -1
  7. package/dist/_internal/types/arguments/generated/_builtin/block_states.d.ts +387 -1
  8. package/dist/_internal/types/arguments/generated/_builtin/block_states.d.ts.map +1 -1
  9. package/dist/_internal/types/arguments/generated/_dispatcher/block.d.ts +16 -4
  10. package/dist/_internal/types/arguments/generated/_dispatcher/block.d.ts.map +1 -1
  11. package/dist/_internal/types/arguments/generated/_dispatcher/resource.d.ts +27 -1
  12. package/dist/_internal/types/arguments/generated/_dispatcher/resource.d.ts.map +1 -1
  13. package/dist/_internal/types/arguments/generated/_registry/advancements.d.ts +1 -1
  14. package/dist/_internal/types/arguments/generated/_registry/advancements.d.ts.map +1 -1
  15. package/dist/_internal/types/arguments/generated/_registry/atlases.d.ts +1 -1
  16. package/dist/_internal/types/arguments/generated/_registry/atlases.d.ts.map +1 -1
  17. package/dist/_internal/types/arguments/generated/_registry/attribute_types.d.ts +1 -1
  18. package/dist/_internal/types/arguments/generated/_registry/attribute_types.d.ts.map +1 -1
  19. package/dist/_internal/types/arguments/generated/_registry/block_definitions.d.ts +1 -1
  20. package/dist/_internal/types/arguments/generated/_registry/block_definitions.d.ts.map +1 -1
  21. package/dist/_internal/types/arguments/generated/_registry/block_predicate_types.d.ts +1 -1
  22. package/dist/_internal/types/arguments/generated/_registry/block_predicate_types.d.ts.map +1 -1
  23. package/dist/_internal/types/arguments/generated/_registry/block_types.d.ts +1 -1
  24. package/dist/_internal/types/arguments/generated/_registry/blocks.d.ts +1 -1
  25. package/dist/_internal/types/arguments/generated/_registry/blocks.d.ts.map +1 -1
  26. package/dist/_internal/types/arguments/generated/_registry/command_argument_types.d.ts +1 -1
  27. package/dist/_internal/types/arguments/generated/_registry/command_argument_types.d.ts.map +1 -1
  28. package/dist/_internal/types/arguments/generated/_registry/custom_stats.d.ts +1 -1
  29. package/dist/_internal/types/arguments/generated/_registry/custom_stats.d.ts.map +1 -1
  30. package/dist/_internal/types/arguments/generated/_registry/data_component_types.d.ts +1 -1
  31. package/dist/_internal/types/arguments/generated/_registry/data_component_types.d.ts.map +1 -1
  32. package/dist/_internal/types/arguments/generated/_registry/decorated_pot_patterns.d.ts +1 -1
  33. package/dist/_internal/types/arguments/generated/_registry/decorated_pot_patterns.d.ts.map +1 -1
  34. package/dist/_internal/types/arguments/generated/_registry/entity_sub_predicate_types.d.ts +1 -1
  35. package/dist/_internal/types/arguments/generated/_registry/entity_types.d.ts +1 -1
  36. package/dist/_internal/types/arguments/generated/_registry/entity_types.d.ts.map +1 -1
  37. package/dist/_internal/types/arguments/generated/_registry/environment_attributes.d.ts +1 -1
  38. package/dist/_internal/types/arguments/generated/_registry/environment_attributes.d.ts.map +1 -1
  39. package/dist/_internal/types/arguments/generated/_registry/fluids.d.ts +1 -1
  40. package/dist/_internal/types/arguments/generated/_registry/int_provider_types.d.ts +1 -1
  41. package/dist/_internal/types/arguments/generated/_registry/int_provider_types.d.ts.map +1 -1
  42. package/dist/_internal/types/arguments/generated/_registry/item_definitions.d.ts +1 -1
  43. package/dist/_internal/types/arguments/generated/_registry/item_definitions.d.ts.map +1 -1
  44. package/dist/_internal/types/arguments/generated/_registry/items.d.ts +1 -1
  45. package/dist/_internal/types/arguments/generated/_registry/items.d.ts.map +1 -1
  46. package/dist/_internal/types/arguments/generated/_registry/langs.d.ts +1 -1
  47. package/dist/_internal/types/arguments/generated/_registry/langs.d.ts.map +1 -1
  48. package/dist/_internal/types/arguments/generated/_registry/loot_condition_types.d.ts +1 -1
  49. package/dist/_internal/types/arguments/generated/_registry/loot_condition_types.d.ts.map +1 -1
  50. package/dist/_internal/types/arguments/generated/_registry/loot_function_types.d.ts +1 -1
  51. package/dist/_internal/types/arguments/generated/_registry/loot_function_types.d.ts.map +1 -1
  52. package/dist/_internal/types/arguments/generated/_registry/loot_number_provider_types.d.ts +1 -1
  53. package/dist/_internal/types/arguments/generated/_registry/loot_number_provider_types.d.ts.map +1 -1
  54. package/dist/_internal/types/arguments/generated/_registry/loot_pool_entry_types.d.ts +1 -1
  55. package/dist/_internal/types/arguments/generated/_registry/loot_tables.d.ts +1 -1
  56. package/dist/_internal/types/arguments/generated/_registry/loot_tables.d.ts.map +1 -1
  57. package/dist/_internal/types/arguments/generated/_registry/mob_effects.d.ts +1 -1
  58. package/dist/_internal/types/arguments/generated/_registry/models.d.ts +1 -1
  59. package/dist/_internal/types/arguments/generated/_registry/models.d.ts.map +1 -1
  60. package/dist/_internal/types/arguments/generated/_registry/number_format_types.d.ts +1 -1
  61. package/dist/_internal/types/arguments/generated/_registry/number_providers.d.ts +5 -0
  62. package/dist/_internal/types/arguments/generated/_registry/number_providers.d.ts.map +1 -0
  63. package/dist/_internal/types/arguments/generated/_registry/outgoing_rpc_methods.d.ts +1 -1
  64. package/dist/_internal/types/arguments/generated/_registry/outgoing_rpc_methods.d.ts.map +1 -1
  65. package/dist/_internal/types/arguments/generated/_registry/particle_types.d.ts +1 -1
  66. package/dist/_internal/types/arguments/generated/_registry/particle_types.d.ts.map +1 -1
  67. package/dist/_internal/types/arguments/generated/_registry/point_of_interest_types.d.ts +1 -1
  68. package/dist/_internal/types/arguments/generated/_registry/post_effects.d.ts +1 -1
  69. package/dist/_internal/types/arguments/generated/_registry/post_effects.d.ts.map +1 -1
  70. package/dist/_internal/types/arguments/generated/_registry/potions.d.ts +1 -1
  71. package/dist/_internal/types/arguments/generated/_registry/predicates.d.ts +5 -0
  72. package/dist/_internal/types/arguments/generated/_registry/predicates.d.ts.map +1 -0
  73. package/dist/_internal/types/arguments/generated/_registry/recipe_serializers.d.ts +1 -1
  74. package/dist/_internal/types/arguments/generated/_registry/recipe_serializers.d.ts.map +1 -1
  75. package/dist/_internal/types/arguments/generated/_registry/recipe_types.d.ts +1 -1
  76. package/dist/_internal/types/arguments/generated/_registry/recipe_types.d.ts.map +1 -1
  77. package/dist/_internal/types/arguments/generated/_registry/recipes.d.ts +1 -1
  78. package/dist/_internal/types/arguments/generated/_registry/recipes.d.ts.map +1 -1
  79. package/dist/_internal/types/arguments/generated/_registry/rule_tests.d.ts +1 -1
  80. package/dist/_internal/types/arguments/generated/_registry/rule_tests.d.ts.map +1 -1
  81. package/dist/_internal/types/arguments/generated/_registry/sound_events.d.ts +1 -1
  82. package/dist/_internal/types/arguments/generated/_registry/sound_events.d.ts.map +1 -1
  83. package/dist/_internal/types/arguments/generated/_registry/sounds.d.ts +1 -1
  84. package/dist/_internal/types/arguments/generated/_registry/sounds.d.ts.map +1 -1
  85. package/dist/_internal/types/arguments/generated/_registry/spawn_condition_types.d.ts +1 -1
  86. package/dist/_internal/types/arguments/generated/_registry/structures.d.ts +1 -1
  87. package/dist/_internal/types/arguments/generated/_registry/structures.d.ts.map +1 -1
  88. package/dist/_internal/types/arguments/generated/_registry/tag_blocks.d.ts +1 -1
  89. package/dist/_internal/types/arguments/generated/_registry/tag_blocks.d.ts.map +1 -1
  90. package/dist/_internal/types/arguments/generated/_registry/tag_damage_types.d.ts +1 -1
  91. package/dist/_internal/types/arguments/generated/_registry/tag_damage_types.d.ts.map +1 -1
  92. package/dist/_internal/types/arguments/generated/_registry/tag_entity_types.d.ts +1 -1
  93. package/dist/_internal/types/arguments/generated/_registry/tag_entity_types.d.ts.map +1 -1
  94. package/dist/_internal/types/arguments/generated/_registry/tag_items.d.ts +1 -1
  95. package/dist/_internal/types/arguments/generated/_registry/tag_items.d.ts.map +1 -1
  96. package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_biomes.d.ts +1 -1
  97. package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_biomes.d.ts.map +1 -1
  98. package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_features.d.ts +5 -0
  99. package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_features.d.ts.map +1 -0
  100. package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_structures.d.ts +1 -1
  101. package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_structures.d.ts.map +1 -1
  102. package/dist/_internal/types/arguments/generated/_registry/textures.d.ts +1 -1
  103. package/dist/_internal/types/arguments/generated/_registry/textures.d.ts.map +1 -1
  104. package/dist/_internal/types/arguments/generated/_registry/trim_materials.d.ts +1 -1
  105. package/dist/_internal/types/arguments/generated/_registry/villager_trades.d.ts +1 -1
  106. package/dist/_internal/types/arguments/generated/_registry/villager_trades.d.ts.map +1 -1
  107. package/dist/_internal/types/arguments/generated/_registry/worldgen_biomes.d.ts +1 -1
  108. package/dist/_internal/types/arguments/generated/_registry/worldgen_biomes.d.ts.map +1 -1
  109. package/dist/_internal/types/arguments/generated/_registry/worldgen_block_state_provider_types.d.ts +1 -1
  110. package/dist/_internal/types/arguments/generated/_registry/worldgen_block_state_provider_types.d.ts.map +1 -1
  111. package/dist/_internal/types/arguments/generated/_registry/worldgen_carver_types.d.ts +5 -0
  112. package/dist/_internal/types/arguments/generated/_registry/worldgen_carver_types.d.ts.map +1 -0
  113. package/dist/_internal/types/arguments/generated/_registry/worldgen_carvers.d.ts +1 -1
  114. package/dist/_internal/types/arguments/generated/_registry/worldgen_carvers.d.ts.map +1 -1
  115. package/dist/_internal/types/arguments/generated/_registry/worldgen_configured_carvers.d.ts +1 -1
  116. package/dist/_internal/types/arguments/generated/_registry/worldgen_configured_features.d.ts +1 -1
  117. package/dist/_internal/types/arguments/generated/_registry/worldgen_density_function_types.d.ts +1 -1
  118. package/dist/_internal/types/arguments/generated/_registry/worldgen_density_function_types.d.ts.map +1 -1
  119. package/dist/_internal/types/arguments/generated/_registry/worldgen_density_functions.d.ts +1 -1
  120. package/dist/_internal/types/arguments/generated/_registry/worldgen_density_functions.d.ts.map +1 -1
  121. package/dist/_internal/types/arguments/generated/_registry/worldgen_feature_types.d.ts +5 -0
  122. package/dist/_internal/types/arguments/generated/_registry/worldgen_feature_types.d.ts.map +1 -0
  123. package/dist/_internal/types/arguments/generated/_registry/worldgen_features.d.ts +1 -1
  124. package/dist/_internal/types/arguments/generated/_registry/worldgen_features.d.ts.map +1 -1
  125. package/dist/_internal/types/arguments/generated/_registry/worldgen_foliage_placer_types.d.ts +1 -1
  126. package/dist/_internal/types/arguments/generated/_registry/worldgen_foliage_placer_types.d.ts.map +1 -1
  127. package/dist/_internal/types/arguments/generated/_registry/worldgen_material_condition_types.d.ts +5 -0
  128. package/dist/_internal/types/arguments/generated/_registry/worldgen_material_condition_types.d.ts.map +1 -0
  129. package/dist/_internal/types/arguments/generated/_registry/worldgen_material_conditions.d.ts +1 -1
  130. package/dist/_internal/types/arguments/generated/_registry/worldgen_material_conditions.d.ts.map +1 -1
  131. package/dist/_internal/types/arguments/generated/_registry/worldgen_material_rule_types.d.ts +5 -0
  132. package/dist/_internal/types/arguments/generated/_registry/worldgen_material_rule_types.d.ts.map +1 -0
  133. package/dist/_internal/types/arguments/generated/_registry/worldgen_material_rules.d.ts +1 -1
  134. package/dist/_internal/types/arguments/generated/_registry/worldgen_material_rules.d.ts.map +1 -1
  135. package/dist/_internal/types/arguments/generated/_registry/worldgen_noise_settings.d.ts +1 -1
  136. package/dist/_internal/types/arguments/generated/_registry/worldgen_noises.d.ts +1 -1
  137. package/dist/_internal/types/arguments/generated/_registry/worldgen_noises.d.ts.map +1 -1
  138. package/dist/_internal/types/arguments/generated/_registry/worldgen_placed_features.d.ts +1 -1
  139. package/dist/_internal/types/arguments/generated/_registry/worldgen_placed_features.d.ts.map +1 -1
  140. package/dist/_internal/types/arguments/generated/_registry/worldgen_placement_modifier_types.d.ts +1 -1
  141. package/dist/_internal/types/arguments/generated/_registry/worldgen_placement_modifier_types.d.ts.map +1 -1
  142. package/dist/_internal/types/arguments/generated/_registry/worldgen_structure_placements.d.ts +1 -1
  143. package/dist/_internal/types/arguments/generated/_registry/worldgen_structure_placements.d.ts.map +1 -1
  144. package/dist/_internal/types/arguments/generated/_registry/worldgen_structure_sets.d.ts +1 -1
  145. package/dist/_internal/types/arguments/generated/_registry/worldgen_structure_sets.d.ts.map +1 -1
  146. package/dist/_internal/types/arguments/generated/_registry/worldgen_structures.d.ts +1 -1
  147. package/dist/_internal/types/arguments/generated/_registry/worldgen_structures.d.ts.map +1 -1
  148. package/dist/_internal/types/arguments/generated/_registry/worldgen_template_pools.d.ts +1 -1
  149. package/dist/_internal/types/arguments/generated/_registry/worldgen_template_pools.d.ts.map +1 -1
  150. package/dist/_internal/types/arguments/generated/_registry/worldgen_tree_decorator_types.d.ts +1 -1
  151. package/dist/_internal/types/arguments/generated/_registry/worldgen_tree_decorator_types.d.ts.map +1 -1
  152. package/dist/_internal/types/arguments/generated/_registry/worldgen_trunk_placer_types.d.ts +1 -1
  153. package/dist/_internal/types/arguments/generated/_registry/worldgen_trunk_placer_types.d.ts.map +1 -1
  154. package/dist/_internal/types/arguments/generated/assets/atlas.d.ts +1 -1
  155. package/dist/_internal/types/arguments/generated/assets/atlas.d.ts.map +1 -1
  156. package/dist/_internal/types/arguments/generated/assets/equipment.d.ts +7 -0
  157. package/dist/_internal/types/arguments/generated/assets/equipment.d.ts.map +1 -1
  158. package/dist/_internal/types/arguments/generated/assets/item_definition.d.ts +1 -10
  159. package/dist/_internal/types/arguments/generated/assets/item_definition.d.ts.map +1 -1
  160. package/dist/_internal/types/arguments/generated/assets/model.d.ts +11 -0
  161. package/dist/_internal/types/arguments/generated/assets/model.d.ts.map +1 -1
  162. package/dist/_internal/types/arguments/generated/assets/texture_meta.d.ts +6 -0
  163. package/dist/_internal/types/arguments/generated/assets/texture_meta.d.ts.map +1 -1
  164. package/dist/_internal/types/arguments/generated/data/advancement/predicate.d.ts +4 -22
  165. package/dist/_internal/types/arguments/generated/data/advancement/predicate.d.ts.map +1 -1
  166. package/dist/_internal/types/arguments/generated/data/advancement/trigger.d.ts +27 -13
  167. package/dist/_internal/types/arguments/generated/data/advancement/trigger.d.ts.map +1 -1
  168. package/dist/_internal/types/arguments/generated/data/advancement.d.ts +2 -1
  169. package/dist/_internal/types/arguments/generated/data/advancement.d.ts.map +1 -1
  170. package/dist/_internal/types/arguments/generated/data/dialog.d.ts +1 -1
  171. package/dist/_internal/types/arguments/generated/data/dialog.d.ts.map +1 -1
  172. package/dist/_internal/types/arguments/generated/data/item_modifier.d.ts +2 -1
  173. package/dist/_internal/types/arguments/generated/data/item_modifier.d.ts.map +1 -1
  174. package/dist/_internal/types/arguments/generated/data/loot/condition.d.ts +8 -4
  175. package/dist/_internal/types/arguments/generated/data/loot/condition.d.ts.map +1 -1
  176. package/dist/_internal/types/arguments/generated/data/loot/function.d.ts +16 -4
  177. package/dist/_internal/types/arguments/generated/data/loot/function.d.ts.map +1 -1
  178. package/dist/_internal/types/arguments/generated/data/loot.d.ts +30 -6
  179. package/dist/_internal/types/arguments/generated/data/loot.d.ts.map +1 -1
  180. package/dist/_internal/types/arguments/generated/data/number_provider.d.ts +17 -4
  181. package/dist/_internal/types/arguments/generated/data/number_provider.d.ts.map +1 -1
  182. package/dist/_internal/types/arguments/generated/data/predicate.d.ts +4 -2
  183. package/dist/_internal/types/arguments/generated/data/predicate.d.ts.map +1 -1
  184. package/dist/_internal/types/arguments/generated/data/recipe.d.ts +4 -1
  185. package/dist/_internal/types/arguments/generated/data/recipe.d.ts.map +1 -1
  186. package/dist/_internal/types/arguments/generated/data/slot_source.d.ts +20 -2
  187. package/dist/_internal/types/arguments/generated/data/slot_source.d.ts.map +1 -1
  188. package/dist/_internal/types/arguments/generated/data/trim.d.ts +5 -0
  189. package/dist/_internal/types/arguments/generated/data/trim.d.ts.map +1 -1
  190. package/dist/_internal/types/arguments/generated/data/variants/instrument.d.ts +18 -3
  191. package/dist/_internal/types/arguments/generated/data/variants/instrument.d.ts.map +1 -1
  192. package/dist/_internal/types/arguments/generated/data/villager_trade.d.ts +9 -0
  193. package/dist/_internal/types/arguments/generated/data/villager_trade.d.ts.map +1 -1
  194. package/dist/_internal/types/arguments/generated/data/worldgen/attribute.d.ts +17 -2
  195. package/dist/_internal/types/arguments/generated/data/worldgen/attribute.d.ts.map +1 -1
  196. package/dist/_internal/types/arguments/generated/data/worldgen/biome.d.ts +3 -1
  197. package/dist/_internal/types/arguments/generated/data/worldgen/biome.d.ts.map +1 -1
  198. package/dist/_internal/types/arguments/generated/data/worldgen/carver.d.ts +24 -6
  199. package/dist/_internal/types/arguments/generated/data/worldgen/carver.d.ts.map +1 -1
  200. package/dist/_internal/types/arguments/generated/data/worldgen/density_function.d.ts +33 -4
  201. package/dist/_internal/types/arguments/generated/data/worldgen/density_function.d.ts.map +1 -1
  202. package/dist/_internal/types/arguments/generated/data/worldgen/dimension.d.ts +1 -1
  203. package/dist/_internal/types/arguments/generated/data/worldgen/dimension.d.ts.map +1 -1
  204. package/dist/_internal/types/arguments/generated/data/worldgen/feature/block_state_provider.d.ts +20 -2
  205. package/dist/_internal/types/arguments/generated/data/worldgen/feature/block_state_provider.d.ts.map +1 -1
  206. package/dist/_internal/types/arguments/generated/data/worldgen/feature/placement.d.ts +11 -2
  207. package/dist/_internal/types/arguments/generated/data/worldgen/feature/placement.d.ts.map +1 -1
  208. package/dist/_internal/types/arguments/generated/data/worldgen/feature/tree.d.ts +12 -5
  209. package/dist/_internal/types/arguments/generated/data/worldgen/feature/tree.d.ts.map +1 -1
  210. package/dist/_internal/types/arguments/generated/data/worldgen/feature.d.ts +50 -60
  211. package/dist/_internal/types/arguments/generated/data/worldgen/feature.d.ts.map +1 -1
  212. package/dist/_internal/types/arguments/generated/data/worldgen/material_condition.d.ts +3 -3
  213. package/dist/_internal/types/arguments/generated/data/worldgen/material_condition.d.ts.map +1 -1
  214. package/dist/_internal/types/arguments/generated/data/worldgen/material_rule.d.ts +3 -3
  215. package/dist/_internal/types/arguments/generated/data/worldgen/material_rule.d.ts.map +1 -1
  216. package/dist/_internal/types/arguments/generated/data/worldgen/noise_settings.d.ts +4 -1
  217. package/dist/_internal/types/arguments/generated/data/worldgen/noise_settings.d.ts.map +1 -1
  218. package/dist/_internal/types/arguments/generated/data/worldgen/processor_list.d.ts +14 -2
  219. package/dist/_internal/types/arguments/generated/data/worldgen/processor_list.d.ts.map +1 -1
  220. package/dist/_internal/types/arguments/generated/data/worldgen.d.ts +6 -1
  221. package/dist/_internal/types/arguments/generated/data/worldgen.d.ts.map +1 -1
  222. package/dist/_internal/types/arguments/generated/dispatcher.d.ts +3 -3
  223. package/dist/_internal/types/arguments/generated/dispatcher.d.ts.map +1 -1
  224. package/dist/_internal/types/arguments/generated/registry-sets.d.ts +8 -5
  225. package/dist/_internal/types/arguments/generated/registry-sets.d.ts.map +1 -1
  226. package/dist/_internal/types/arguments/generated/registry.d.ts +16 -10
  227. package/dist/_internal/types/arguments/generated/registry.d.ts.map +1 -1
  228. package/dist/_internal/types/arguments/generated/resource-paths.d.ts +15 -0
  229. package/dist/_internal/types/arguments/generated/resource-paths.d.ts.map +1 -1
  230. package/dist/_internal/types/arguments/generated/resources.d.ts +2 -2
  231. package/dist/_internal/types/arguments/generated/resources.d.ts.map +1 -1
  232. package/dist/_internal/types/arguments/generated/world/block/brewing_stand.d.ts +15 -3
  233. package/dist/_internal/types/arguments/generated/world/block/brewing_stand.d.ts.map +1 -1
  234. package/dist/_internal/types/arguments/generated/world/block/decorated_pot.d.ts +7 -0
  235. package/dist/_internal/types/arguments/generated/world/block/decorated_pot.d.ts.map +1 -1
  236. package/dist/_internal/types/arguments/generated/world/block/furnace.d.ts +9 -5
  237. package/dist/_internal/types/arguments/generated/world/block/furnace.d.ts.map +1 -1
  238. package/dist/_internal/types/arguments/generated/world/block/sign.d.ts +8 -0
  239. package/dist/_internal/types/arguments/generated/world/block/sign.d.ts.map +1 -1
  240. package/dist/_internal/types/arguments/generated/world/component/item.d.ts +43 -10
  241. package/dist/_internal/types/arguments/generated/world/component/item.d.ts.map +1 -1
  242. package/dist/_internal/types/arguments/generated/world/component/predicate.d.ts +1 -1
  243. package/dist/_internal/types/arguments/generated/world/component/predicate.d.ts.map +1 -1
  244. package/dist/_internal/types/arguments/generated/world/entity/boat.d.ts +11 -1
  245. package/dist/_internal/types/arguments/generated/world/entity/boat.d.ts.map +1 -1
  246. package/dist/_internal/types/arguments/generated/world/entity/mob/player.d.ts +2 -1
  247. package/dist/_internal/types/arguments/generated/world/entity/mob/player.d.ts.map +1 -1
  248. package/dist/_internal/types/arguments/generated/world/entity/mob.d.ts +0 -4
  249. package/dist/_internal/types/arguments/generated/world/entity/mob.d.ts.map +1 -1
  250. package/dist/_internal/types/arguments/generated/world/entity/projectile.d.ts +2 -0
  251. package/dist/_internal/types/arguments/generated/world/entity/projectile.d.ts.map +1 -1
  252. package/dist/_internal/types/arguments/generated/world/entity.d.ts +4 -0
  253. package/dist/_internal/types/arguments/generated/world/entity.d.ts.map +1 -1
  254. package/dist/_internal/types/commands/commands.d.ts +2 -1
  255. package/dist/_internal/types/commands/commands.d.ts.map +1 -1
  256. package/dist/_internal/types/commands/implementations/entity/execute.d.ts +53 -5
  257. package/dist/_internal/types/commands/implementations/entity/execute.d.ts.map +1 -1
  258. package/dist/_internal/types/commands/implementations/index.d.ts +1 -0
  259. package/dist/_internal/types/commands/implementations/index.d.ts.map +1 -1
  260. package/dist/_internal/types/commands/implementations/player/posteffect.d.ts +61 -0
  261. package/dist/_internal/types/commands/implementations/player/posteffect.d.ts.map +1 -0
  262. package/dist/_internal/types/commands/implementations/world/item.d.ts +73 -11
  263. package/dist/_internal/types/commands/implementations/world/item.d.ts.map +1 -1
  264. package/dist/_internal/types/core/resources/datapack/decoratedPotPattern.d.ts +25 -0
  265. package/dist/_internal/types/core/resources/datapack/decoratedPotPattern.d.ts.map +1 -0
  266. package/dist/_internal/types/core/resources/datapack/index.d.ts +2 -0
  267. package/dist/_internal/types/core/resources/datapack/index.d.ts.map +1 -1
  268. package/dist/_internal/types/core/resources/datapack/slotSource.d.ts +27 -0
  269. package/dist/_internal/types/core/resources/datapack/slotSource.d.ts.map +1 -0
  270. package/dist/_internal/types/flow/Flow.d.ts +48 -8
  271. package/dist/_internal/types/flow/Flow.d.ts.map +1 -1
  272. package/dist/_internal/types/flow/conditions/index.d.ts +3 -0
  273. package/dist/_internal/types/flow/conditions/index.d.ts.map +1 -1
  274. package/dist/_internal/types/flow/conditions/resources/index.d.ts +1 -0
  275. package/dist/_internal/types/flow/conditions/resources/index.d.ts.map +1 -1
  276. package/dist/_internal/types/flow/conditions/resources/slotSource.d.ts +14 -0
  277. package/dist/_internal/types/flow/conditions/resources/slotSource.d.ts.map +1 -0
  278. package/dist/_internal/types/flow/conditions/variables/items.d.ts +40 -7
  279. package/dist/_internal/types/flow/conditions/variables/items.d.ts.map +1 -1
  280. package/dist/_internal/types/pack/pack.d.ts +8 -3
  281. package/dist/_internal/types/pack/pack.d.ts.map +1 -1
  282. package/dist/browser/sandstone.esm.js +2237 -518
  283. package/dist/browser/sandstone.esm.js.map +1 -1
  284. package/dist/exports/arguments/index.d.ts +1 -1
  285. package/dist/exports/arguments/index.js +1 -1
  286. package/dist/exports/commands/index.d.ts +1 -1
  287. package/dist/exports/commands/index.js +1 -1
  288. package/dist/exports/core/index.d.ts +1 -1
  289. package/dist/exports/core/index.js +1 -1
  290. package/dist/exports/flow/index.d.ts +1 -1
  291. package/dist/exports/flow/index.js +1 -1
  292. package/dist/exports/index.d.ts +1 -1
  293. package/dist/exports/index.js +1 -1
  294. package/dist/exports/variables/index.d.ts +1 -1
  295. package/dist/exports/variables/index.js +1 -1
  296. package/package.json +3 -3
  297. package/src/arguments/generated/_builtin/block_state_keys.ts +232 -0
  298. package/src/arguments/generated/_builtin/block_states.ts +444 -0
  299. package/src/arguments/generated/_dispatcher/block.ts +20 -4
  300. package/src/arguments/generated/_dispatcher/resource.ts +33 -0
  301. package/src/arguments/generated/_registry/advancements.ts +114 -0
  302. package/src/arguments/generated/_registry/atlases.ts +0 -1
  303. package/src/arguments/generated/_registry/attribute_types.ts +1 -0
  304. package/src/arguments/generated/_registry/block_definitions.ts +58 -0
  305. package/src/arguments/generated/_registry/block_predicate_types.ts +1 -0
  306. package/src/arguments/generated/_registry/blocks.ts +58 -0
  307. package/src/arguments/generated/_registry/command_argument_types.ts +2 -0
  308. package/src/arguments/generated/_registry/custom_stats.ts +1 -0
  309. package/src/arguments/generated/_registry/data_component_types.ts +11 -0
  310. package/src/arguments/generated/_registry/decorated_pot_patterns.ts +0 -1
  311. package/src/arguments/generated/_registry/entity_types.ts +3 -0
  312. package/src/arguments/generated/_registry/environment_attributes.ts +3 -0
  313. package/src/arguments/generated/_registry/int_provider_types.ts +1 -0
  314. package/src/arguments/generated/_registry/item_definitions.ts +73 -0
  315. package/src/arguments/generated/_registry/items.ts +73 -0
  316. package/src/arguments/generated/_registry/langs.ts +1 -0
  317. package/src/arguments/generated/_registry/loot_condition_types.ts +1 -2
  318. package/src/arguments/generated/_registry/loot_function_types.ts +0 -1
  319. package/src/arguments/generated/_registry/loot_number_provider_types.ts +3 -0
  320. package/src/arguments/generated/_registry/loot_tables.ts +60 -0
  321. package/src/arguments/generated/_registry/models.ts +170 -2
  322. package/src/arguments/generated/_registry/number_providers.ts +35 -0
  323. package/src/arguments/generated/_registry/outgoing_rpc_methods.ts +4 -0
  324. package/src/arguments/generated/_registry/particle_types.ts +3 -0
  325. package/src/arguments/generated/_registry/post_effects.ts +0 -1
  326. package/src/arguments/generated/_registry/predicates.ts +12 -0
  327. package/src/arguments/generated/_registry/recipe_serializers.ts +1 -0
  328. package/src/arguments/generated/_registry/recipe_types.ts +1 -0
  329. package/src/arguments/generated/_registry/recipes.ts +393 -0
  330. package/src/arguments/generated/_registry/rule_tests.ts +4 -0
  331. package/src/arguments/generated/_registry/sound_events.ts +23 -0
  332. package/src/arguments/generated/_registry/sounds.ts +98 -8
  333. package/src/arguments/generated/_registry/structures.ts +279 -0
  334. package/src/arguments/generated/_registry/tag_blocks.ts +29 -3
  335. package/src/arguments/generated/_registry/tag_damage_types.ts +1 -0
  336. package/src/arguments/generated/_registry/tag_entity_types.ts +1 -0
  337. package/src/arguments/generated/_registry/tag_items.ts +7 -1
  338. package/src/arguments/generated/_registry/tag_worldgen_biomes.ts +18 -0
  339. package/src/arguments/generated/_registry/tag_worldgen_features.ts +10 -0
  340. package/src/arguments/generated/_registry/tag_worldgen_structures.ts +1 -0
  341. package/src/arguments/generated/_registry/textures.ts +101 -18
  342. package/src/arguments/generated/_registry/villager_trades.ts +3 -0
  343. package/src/arguments/generated/_registry/worldgen_biomes.ts +1 -0
  344. package/src/arguments/generated/_registry/worldgen_block_state_provider_types.ts +2 -0
  345. package/src/arguments/generated/_registry/worldgen_carver_types.ts +11 -0
  346. package/src/arguments/generated/_registry/worldgen_carvers.ts +1 -0
  347. package/src/arguments/generated/_registry/worldgen_density_function_types.ts +9 -1
  348. package/src/arguments/generated/_registry/worldgen_density_functions.ts +16 -0
  349. package/src/arguments/generated/_registry/worldgen_feature_types.ts +68 -0
  350. package/src/arguments/generated/_registry/worldgen_features.ts +220 -43
  351. package/src/arguments/generated/_registry/worldgen_foliage_placer_types.ts +1 -0
  352. package/src/arguments/generated/_registry/worldgen_material_condition_types.ts +20 -0
  353. package/src/arguments/generated/_registry/worldgen_material_conditions.ts +8 -11
  354. package/src/arguments/generated/_registry/worldgen_material_rule_types.ts +13 -0
  355. package/src/arguments/generated/_registry/worldgen_material_rules.ts +40 -4
  356. package/src/arguments/generated/_registry/worldgen_noises.ts +1 -0
  357. package/src/arguments/generated/_registry/worldgen_placed_features.ts +11 -0
  358. package/src/arguments/generated/_registry/worldgen_placement_modifier_types.ts +3 -1
  359. package/src/arguments/generated/_registry/worldgen_structure_placements.ts +1 -0
  360. package/src/arguments/generated/_registry/worldgen_structure_sets.ts +1 -0
  361. package/src/arguments/generated/_registry/worldgen_structures.ts +18 -0
  362. package/src/arguments/generated/_registry/worldgen_template_pools.ts +57 -0
  363. package/src/arguments/generated/_registry/worldgen_tree_decorator_types.ts +1 -0
  364. package/src/arguments/generated/_registry/worldgen_trunk_placer_types.ts +1 -0
  365. package/src/arguments/generated/assets/atlas.ts +1 -1
  366. package/src/arguments/generated/assets/equipment.ts +7 -0
  367. package/src/arguments/generated/assets/item_definition.ts +0 -12
  368. package/src/arguments/generated/assets/model.ts +11 -0
  369. package/src/arguments/generated/assets/texture_meta.ts +6 -0
  370. package/src/arguments/generated/data/advancement/predicate.ts +9 -26
  371. package/src/arguments/generated/data/advancement/trigger.ts +29 -13
  372. package/src/arguments/generated/data/advancement.ts +2 -1
  373. package/src/arguments/generated/data/dialog.ts +1 -1
  374. package/src/arguments/generated/data/item_modifier.ts +7 -1
  375. package/src/arguments/generated/data/loot/condition.ts +10 -2
  376. package/src/arguments/generated/data/loot/function.ts +22 -4
  377. package/src/arguments/generated/data/loot.ts +34 -6
  378. package/src/arguments/generated/data/number_provider.ts +26 -4
  379. package/src/arguments/generated/data/predicate.ts +8 -2
  380. package/src/arguments/generated/data/recipe.ts +4 -0
  381. package/src/arguments/generated/data/slot_source.ts +23 -2
  382. package/src/arguments/generated/data/trim.ts +5 -0
  383. package/src/arguments/generated/data/variants/instrument.ts +18 -3
  384. package/src/arguments/generated/data/villager_trade.ts +9 -0
  385. package/src/arguments/generated/data/worldgen/attribute.ts +24 -1
  386. package/src/arguments/generated/data/worldgen/biome.ts +3 -1
  387. package/src/arguments/generated/data/worldgen/carver.ts +34 -7
  388. package/src/arguments/generated/data/worldgen/density_function.ts +41 -4
  389. package/src/arguments/generated/data/worldgen/dimension.ts +1 -2
  390. package/src/arguments/generated/data/worldgen/feature/block_state_provider.ts +21 -1
  391. package/src/arguments/generated/data/worldgen/feature/placement.ts +13 -1
  392. package/src/arguments/generated/data/worldgen/feature/tree.ts +13 -3
  393. package/src/arguments/generated/data/worldgen/feature.ts +59 -65
  394. package/src/arguments/generated/data/worldgen/material_condition.ts +7 -3
  395. package/src/arguments/generated/data/worldgen/material_rule.ts +7 -3
  396. package/src/arguments/generated/data/worldgen/noise_settings.ts +4 -1
  397. package/src/arguments/generated/data/worldgen/processor_list.ts +17 -2
  398. package/src/arguments/generated/data/worldgen.ts +7 -0
  399. package/src/arguments/generated/dispatcher.ts +8 -8
  400. package/src/arguments/generated/registry-sets.ts +14 -8
  401. package/src/arguments/generated/registry.ts +22 -15
  402. package/src/arguments/generated/resource-paths.ts +3 -0
  403. package/src/arguments/generated/resources.ts +4 -0
  404. package/src/arguments/generated/world/block/brewing_stand.ts +15 -3
  405. package/src/arguments/generated/world/block/decorated_pot.ts +7 -0
  406. package/src/arguments/generated/world/block/furnace.ts +9 -5
  407. package/src/arguments/generated/world/block/sign.ts +8 -0
  408. package/src/arguments/generated/world/component/item.ts +58 -8
  409. package/src/arguments/generated/world/component/predicate.ts +1 -1
  410. package/src/arguments/generated/world/entity/boat.ts +13 -0
  411. package/src/arguments/generated/world/entity/mob/player.ts +12 -1
  412. package/src/arguments/generated/world/entity/mob.ts +0 -4
  413. package/src/arguments/generated/world/entity/projectile.ts +2 -0
  414. package/src/arguments/generated/world/entity.ts +4 -0
  415. package/src/commands/commands.ts +5 -0
  416. package/src/commands/implementations/entity/execute.ts +65 -8
  417. package/src/commands/implementations/index.ts +1 -0
  418. package/src/commands/implementations/player/posteffect.ts +75 -0
  419. package/src/commands/implementations/world/item.ts +96 -19
  420. package/src/core/resources/datapack/decoratedPotPattern.ts +47 -0
  421. package/src/core/resources/datapack/index.ts +2 -2
  422. package/src/core/resources/datapack/slotSource.ts +58 -0
  423. package/src/flow/Flow.ts +67 -15
  424. package/src/flow/conditions/index.ts +3 -0
  425. package/src/flow/conditions/resources/index.ts +1 -0
  426. package/src/flow/conditions/resources/slotSource.ts +21 -0
  427. package/src/flow/conditions/variables/items.ts +53 -5
  428. package/src/pack/pack.ts +27 -5
  429. package/src/sandstone.ts +56 -3
package/src/flow/Flow.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  import type {
2
2
  Registry,
3
- ContainerSlotSelector,
4
3
  Coordinates,
5
- EntitySlotSelector,
6
4
  JSONTextComponent,
7
5
  MultipleEntitiesArgument,
8
6
  MultiplePlayersArgument,
@@ -11,6 +9,7 @@ import type {
11
9
  SymbolBlock,
12
10
  SymbolMcdocBlockStates,
13
11
  } from 'sandstone/arguments'
12
+ import type { ItemSlotSource } from '../commands/implementations/world/item'
14
13
  import type {
15
14
  ConditionClass,
16
15
  DataPointClass,
@@ -21,7 +20,7 @@ import type {
21
20
  import { parseJSONText, Score } from 'sandstone/variables'
22
21
  import type { DataPointPickClass, MCFunctionClass, PredicateClass, SandstoneCore } from '../core'
23
22
  import type { LiteralUnion, NamespacedLiteralUnion } from '../utils'
24
- import { AndNode, ConditionNode, NotNode, OrNode, SandstoneConditions, type BlockConditionNode, type ItemsBlockConditionNode, type ItemsEntityConditionNode } from './conditions'
23
+ import { AndNode, ConditionNode, NotNode, OrNode, SandstoneConditions, type BlockConditionNode, type ItemsBlockConditionNode, type ItemsEntityConditionNode, type SlotsBlockConditionNode, type SlotsEntityConditionNode } from './conditions'
25
24
  import type { ItemPredicate } from './conditions/variables/items'
26
25
  import { IfStatement } from './if_else'
27
26
  import type { ForOfIterator } from './loops'
@@ -58,17 +57,37 @@ export class Flow {
58
57
  if = (condition: Condition, callback: () => void) =>
59
58
  new IfStatement(this.sandstoneCore, conditionToNode(condition), callback)
60
59
 
61
- and = (...conditions: Condition[]) =>
62
- new AndNode(
60
+ /**
61
+ * Combine conditions with AND.
62
+ *
63
+ * Accepts either variadic conditions (`_.and(a, b, c)`) or a single array
64
+ * (`_.and([a, b, c])`, useful for `Array.prototype.map` results).
65
+ */
66
+ and(...conditions: Condition[]): AndNode
67
+ and(conditions: Condition[]): AndNode
68
+ and(...args: any[]): AndNode {
69
+ const conditions = (args[0] instanceof Array ? args[0] : args) as Condition[]
70
+ return new AndNode(
63
71
  this.sandstoneCore,
64
72
  conditions.map((condition) => conditionToNode(condition)),
65
73
  )
74
+ }
66
75
 
67
- or = (...conditions: Condition[]) =>
68
- new OrNode(
76
+ /**
77
+ * Combine conditions with OR.
78
+ *
79
+ * Accepts either variadic conditions (`_.or(a, b, c)`) or a single array
80
+ * (`_.or([a, b, c])`, useful for `Array.prototype.map` results).
81
+ */
82
+ or(...conditions: Condition[]): OrNode
83
+ or(conditions: Condition[]): OrNode
84
+ or(...args: any[]): OrNode {
85
+ const conditions = (args[0] instanceof Array ? args[0] : args) as Condition[]
86
+ return new OrNode(
69
87
  this.sandstoneCore,
70
88
  conditions.map((condition) => conditionToNode(condition)),
71
89
  )
90
+ }
72
91
 
73
92
  not = (condition: Condition) => new NotNode(this.sandstoneCore, conditionToNode(condition))
74
93
 
@@ -466,24 +485,57 @@ export class Flow {
466
485
  * Test for items in a block entity's inventory slots.
467
486
  *
468
487
  * @param sourcePos Position of the block entity to test.
469
- * @param slots Slots to test (e.g., `'container.*'`, `'container.0'`).
488
+ * @param slotSource Slot source to test (e.g., `'container.*'`, inline slot source, or a slot source reference).
470
489
  * @param itemPredicate Item predicate to match against.
471
490
  */
472
- block: (sourcePos: Coordinates, slots: ContainerSlotSelector, itemPredicate: ItemPredicate) => ItemsBlockConditionNode
491
+ block: (sourcePos: Coordinates, slotSource: ItemSlotSource, itemPredicate: ItemPredicate) => ItemsBlockConditionNode
473
492
  /**
474
493
  * Test for items in an entity's inventory slots.
475
494
  *
476
495
  * @param source Entity to test.
477
- * @param slots Slots to test (e.g., `'inventory.*'`, `'hotbar.0'`, `'armor.chest'`).
496
+ * @param slotSource Slot source to test (e.g., `'inventory.*'`, inline slot source, or a slot source reference).
478
497
  * @param itemPredicate Item predicate to match against.
479
498
  */
480
- entity: (source: MultipleEntitiesArgument, slots: EntitySlotSelector, itemPredicate: ItemPredicate) => ItemsEntityConditionNode
499
+ entity: (source: MultipleEntitiesArgument, slotSource: ItemSlotSource, itemPredicate: ItemPredicate) => ItemsEntityConditionNode
500
+ } {
501
+ return {
502
+ block: (sourcePos: Coordinates, slotSource: ItemSlotSource, itemPredicate: ItemPredicate) =>
503
+ new SandstoneConditions.ItemsBlock(this.sandstoneCore, sourcePos, slotSource, itemPredicate),
504
+ entity: (source: MultipleEntitiesArgument, slotSource: ItemSlotSource, itemPredicate: ItemPredicate) =>
505
+ new SandstoneConditions.ItemsEntity(this.sandstoneCore, source, slotSource, itemPredicate),
506
+ }
507
+ }
508
+
509
+ /**
510
+ * Counts slots from a slot source that are present in a block entity or entity.
511
+ *
512
+ * @example
513
+ * ```ts
514
+ * _.if(_.slots.entity('@p', 'inventory.*'), () => { ... })
515
+ * _.if(_.slots.block(abs(0, 64, 0), { type: 'minecraft:slot_range', slots: 'armor.chest' }), () => { ... })
516
+ * ```
517
+ */
518
+ get slots(): {
519
+ /**
520
+ * Count slots from a slot source that are present in a block entity.
521
+ *
522
+ * @param sourcePos Position of the block entity to test.
523
+ * @param slotSource Slot source (e.g., `'container.*'`, inline slot source, or a slot source reference).
524
+ */
525
+ block: (sourcePos: Coordinates, slotSource: ItemSlotSource) => SlotsBlockConditionNode
526
+ /**
527
+ * Count slots from a slot source that are present in an entity.
528
+ *
529
+ * @param source Entity to test.
530
+ * @param slotSource Slot source (e.g., `'inventory.*'`, inline slot source, or a slot source reference).
531
+ */
532
+ entity: (source: MultipleEntitiesArgument, slotSource: ItemSlotSource) => SlotsEntityConditionNode
481
533
  } {
482
534
  return {
483
- block: (sourcePos: Coordinates, slots: ContainerSlotSelector, itemPredicate: ItemPredicate) =>
484
- new SandstoneConditions.ItemsBlock(this.sandstoneCore, sourcePos, slots, itemPredicate),
485
- entity: (source: MultipleEntitiesArgument, slots: EntitySlotSelector, itemPredicate: ItemPredicate) =>
486
- new SandstoneConditions.ItemsEntity(this.sandstoneCore, source, slots, itemPredicate),
535
+ block: (sourcePos: Coordinates, slotSource: ItemSlotSource) =>
536
+ new SandstoneConditions.SlotsBlock(this.sandstoneCore, sourcePos, slotSource),
537
+ entity: (source: MultipleEntitiesArgument, slotSource: ItemSlotSource) =>
538
+ new SandstoneConditions.SlotsEntity(this.sandstoneCore, source, slotSource),
487
539
  }
488
540
  }
489
541
 
@@ -11,6 +11,7 @@ import * as variables from './variables'
11
11
  export const SandstoneConditions = {
12
12
  Advancement: resources.AdvancementConditionNode,
13
13
  Predicate: resources.PredicateConditionNode,
14
+ SlotSource: resources.SlotSourceConditionNode,
14
15
  Tag: resources.TagConditionNode,
15
16
 
16
17
  Biome: variables.BiomeConditionNode,
@@ -20,6 +21,8 @@ export const SandstoneConditions = {
20
21
  Function: variables.FunctionConditionNode,
21
22
  ItemsBlock: variables.ItemsBlockConditionNode,
22
23
  ItemsEntity: variables.ItemsEntityConditionNode,
24
+ SlotsBlock: variables.SlotsBlockConditionNode,
25
+ SlotsEntity: variables.SlotsEntityConditionNode,
23
26
  Loaded: variables.LoadedConditionNode,
24
27
  DataPointExists: variables.DataPointExistsConditionNode,
25
28
  DataPointEquals: variables.DataPointEqualsConditionNode,
@@ -1,3 +1,4 @@
1
1
  export * from './advancement'
2
2
  export * from './predicate'
3
+ export * from './slotSource'
3
4
  export * from './tag'
@@ -0,0 +1,21 @@
1
+ import type { SandstoneCore } from 'sandstone/core'
2
+ import { SingleConditionNode } from '../condition'
3
+
4
+ /**
5
+ * Condition node representing a slot source being tested against `@s`.
6
+ *
7
+ * Expands to `execute if slots entity @s <slotSource>`, which counts the number of slots from
8
+ * the slot source that are present on the executing entity.
9
+ */
10
+ export class SlotSourceConditionNode extends SingleConditionNode {
11
+ constructor(
12
+ sandstoneCore: SandstoneCore,
13
+ public slotSource: string,
14
+ ) {
15
+ super(sandstoneCore)
16
+ }
17
+
18
+ getCondition(): unknown[] {
19
+ return ['slots', 'entity', '@s', this.slotSource]
20
+ }
21
+ }
@@ -1,7 +1,8 @@
1
- import type { Coordinates, ContainerSlotSelector, EntitySlotSelector, MultipleEntitiesArgument, Registry } from 'sandstone/arguments'
1
+ import type { Coordinates, MultipleEntitiesArgument, Registry } from 'sandstone/arguments'
2
2
  import type { SandstoneCore } from 'sandstone/core/sandstoneCore'
3
3
  import { coordinatesParser, targetParser } from 'sandstone/variables'
4
4
  import type { ItemPredicateClass } from 'sandstone/variables/ItemPredicate'
5
+ import type { ItemSlotSource } from '../../../commands/implementations/world/item'
5
6
  import { SingleConditionNode } from '../condition'
6
7
 
7
8
  /** Item predicate for matching items in inventory slots. */
@@ -14,20 +15,23 @@ export type ItemPredicate = Registry['minecraft:item'] | ItemPredicateClass
14
15
  * ```ts
15
16
  * // Check if chest has any diamonds
16
17
  * _.if(_.items.block(abs(0, 64, 0), 'container.*', 'minecraft:diamond'), () => { ... })
18
+ *
19
+ * // Check using an inline slot source
20
+ * _.if(_.items.block(abs(0, 64, 0), { type: 'minecraft:slot_range', slots: 'container.0' }, 'minecraft:diamond'), () => { ... })
17
21
  * ```
18
22
  */
19
23
  export class ItemsBlockConditionNode extends SingleConditionNode {
20
24
  constructor(
21
25
  sandstoneCore: SandstoneCore,
22
26
  private sourcePos: Coordinates,
23
- private slots: ContainerSlotSelector,
27
+ private slotSource: ItemSlotSource,
24
28
  private itemPredicate: ItemPredicate,
25
29
  ) {
26
30
  super(sandstoneCore)
27
31
  }
28
32
 
29
33
  getCondition() {
30
- return ['items', 'block', coordinatesParser(this.sourcePos), this.slots, `${this.itemPredicate}`]
34
+ return ['items', 'block', coordinatesParser(this.sourcePos), this.slotSource, `${this.itemPredicate}`]
31
35
  }
32
36
  }
33
37
 
@@ -44,13 +48,57 @@ export class ItemsEntityConditionNode extends SingleConditionNode {
44
48
  constructor(
45
49
  sandstoneCore: SandstoneCore,
46
50
  private source: MultipleEntitiesArgument,
47
- private slots: EntitySlotSelector,
51
+ private slotSource: ItemSlotSource,
48
52
  private itemPredicate: ItemPredicate,
49
53
  ) {
50
54
  super(sandstoneCore)
51
55
  }
52
56
 
53
57
  getCondition() {
54
- return ['items', 'entity', targetParser(this.source), this.slots, `${this.itemPredicate}`]
58
+ return ['items', 'entity', targetParser(this.source), this.slotSource, `${this.itemPredicate}`]
59
+ }
60
+ }
61
+
62
+ /**
63
+ * Condition node for counting slots from a slot source on a block entity.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * _.if(_.slots.block(abs(0, 64, 0), 'container.*'), () => { ... })
68
+ * ```
69
+ */
70
+ export class SlotsBlockConditionNode extends SingleConditionNode {
71
+ constructor(
72
+ sandstoneCore: SandstoneCore,
73
+ private sourcePos: Coordinates,
74
+ private slotSource: ItemSlotSource,
75
+ ) {
76
+ super(sandstoneCore)
77
+ }
78
+
79
+ getCondition() {
80
+ return ['slots', 'block', coordinatesParser(this.sourcePos), this.slotSource]
81
+ }
82
+ }
83
+
84
+ /**
85
+ * Condition node for counting slots from a slot source on an entity.
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * _.if(_.slots.entity('@p', 'inventory.*'), () => { ... })
90
+ * ```
91
+ */
92
+ export class SlotsEntityConditionNode extends SingleConditionNode {
93
+ constructor(
94
+ sandstoneCore: SandstoneCore,
95
+ private source: MultipleEntitiesArgument,
96
+ private slotSource: ItemSlotSource,
97
+ ) {
98
+ super(sandstoneCore)
99
+ }
100
+
101
+ getCondition() {
102
+ return ['slots', 'entity', targetParser(this.source), this.slotSource]
55
103
  }
56
104
  }
package/src/pack/pack.ts CHANGED
@@ -29,6 +29,7 @@ import type {
29
29
  ChatTypeClassArguments,
30
30
  DamageTypeClassArguments,
31
31
  DataPointPickClass,
32
+ DecoratedPotPatternClassArguments,
32
33
  DialogClassArguments,
33
34
  EnchantmentClassArguments,
34
35
  EnchantmentProviderClassArguments,
@@ -51,6 +52,7 @@ import type {
51
52
  PredicateClassArguments,
52
53
  RecipeClassArguments,
53
54
  ShaderClassArguments,
55
+ SlotSourceClassArguments,
54
56
  SoundEventArguments,
55
57
  SoundsIndexArguments,
56
58
  SulfurCubeArchetypeClassArguments,
@@ -77,6 +79,7 @@ import {
77
79
  BlockStateDefinitionClass,
78
80
  ChatTypeClass,
79
81
  DamageTypeClass,
82
+ DecoratedPotPatternClass,
80
83
  DialogClass,
81
84
  EnchantmentClass,
82
85
  EnchantmentProviderClass,
@@ -99,6 +102,7 @@ import {
99
102
  RecipeClass,
100
103
  SandstoneCore,
101
104
  ShaderClass,
105
+ SlotSourceClass,
102
106
  SoundEventClass,
103
107
  SoundsIndexClass,
104
108
  SulfurCubeArchetypeClass,
@@ -314,11 +318,11 @@ export class SandstonePack {
314
318
  }
315
319
  return {
316
320
  datapack: {
317
- packFormat: 111,
321
+ packFormat: 112,
318
322
  description: 'A Sandstone datapack',
319
323
  },
320
324
  resourcepack: {
321
- packFormat: 92,
325
+ packFormat: 93,
322
326
  description: 'A Sandstone resource pack',
323
327
  },
324
328
  }
@@ -444,7 +448,7 @@ export class SandstonePack {
444
448
  let pack = this.packTypes.get('datapack') as DataPack
445
449
 
446
450
  if (!pack) {
447
- const options = this.packOptions.datapack ?? { packFormat: 111, description: 'A Sandstone datapack' }
451
+ const options = this.packOptions.datapack ?? { packFormat: 112, description: 'A Sandstone datapack' }
448
452
  pack = this.packTypes.set('datapack', new DataPack(false, options)).get('datapack') as DataPack
449
453
  }
450
454
 
@@ -455,7 +459,7 @@ export class SandstonePack {
455
459
  let pack = this.packTypes.get('resourcepack') as ResourcePack
456
460
 
457
461
  if (!pack) {
458
- const options = this.packOptions.resourcepack ?? { packFormat: 92, description: 'A Sandstone resource pack' }
462
+ const options = this.packOptions.resourcepack ?? { packFormat: 93, description: 'A Sandstone resource pack' }
459
463
  pack = this.packTypes
460
464
  .set('resourcepack', new ResourcePack(options))
461
465
  .get('resourcepack') as ResourcePack
@@ -1121,6 +1125,15 @@ export class SandstonePack {
1121
1125
  ...options,
1122
1126
  })
1123
1127
 
1128
+ DecoratedPotPattern = (name: string, decoratedPotPattern: DecoratedPotPatternClassArguments['json'], options?: Omit<Partial<DecoratedPotPatternClassArguments>, 'json'>) =>
1129
+ new DecoratedPotPatternClass(this.core, name, {
1130
+ json: decoratedPotPattern,
1131
+ creator: 'user',
1132
+ addToSandstoneCore: true,
1133
+ onConflict: conflictDefaults('decorated_pot_pattern') as DecoratedPotPatternClassArguments['onConflict'],
1134
+ ...options,
1135
+ })
1136
+
1124
1137
  ItemModifier = (name: string, itemModifier: ItemModifierClassArguments['json'], options?: Omit<Partial<ItemModifierClassArguments>, 'json'>) =>
1125
1138
  new ItemModifierClass(this.core, name, {
1126
1139
  json: itemModifier,
@@ -1161,6 +1174,15 @@ export class SandstonePack {
1161
1174
  ...options,
1162
1175
  })
1163
1176
 
1177
+ SlotSource = (name: string, slotSource: SlotSourceClassArguments['json'], options?: Omit<Partial<SlotSourceClassArguments>, 'json'>) =>
1178
+ new SlotSourceClass(this.core, name, {
1179
+ json: slotSource,
1180
+ creator: 'user',
1181
+ addToSandstoneCore: true,
1182
+ onConflict: conflictDefaults('slot_source') as SlotSourceClassArguments['onConflict'],
1183
+ ...options,
1184
+ })
1185
+
1164
1186
  SulfurCubeArchetype = (name: string, sulfurCubeArchetype: SulfurCubeArchetypeClassArguments['json'], options?: Omit<Partial<SulfurCubeArchetypeClassArguments>, 'json'>) =>
1165
1187
  new SulfurCubeArchetypeClass(this.core, name, {
1166
1188
  json: sulfurCubeArchetype,
@@ -1355,7 +1377,7 @@ export class SandstonePack {
1355
1377
  json,
1356
1378
  creator: 'user',
1357
1379
  addToSandstoneCore: true,
1358
- onConflict: conflictDefaults('block_definition') as BlockStateDefinitionArguments<JSON>['onConflict'],
1380
+ onConflict: conflictDefaults('blockstate') as BlockStateDefinitionArguments<JSON>['onConflict'],
1359
1381
  ...options,
1360
1382
  })
1361
1383
  }
package/src/sandstone.ts CHANGED
@@ -8,6 +8,7 @@ import type {
8
8
  BlockStateDefinitionArguments,
9
9
  ChatTypeClassArguments,
10
10
  DamageTypeClassArguments,
11
+ DecoratedPotPatternClassArguments,
11
12
  DialogClassArguments,
12
13
  EnchantmentClassArguments,
13
14
  EnchantmentProviderClassArguments,
@@ -27,6 +28,7 @@ import type {
27
28
  PredicateClassArguments,
28
29
  RecipeClassArguments,
29
30
  ShaderClassArguments,
31
+ SlotSourceClassArguments,
30
32
  SoundEventArguments,
31
33
  SoundsIndexArguments,
32
34
  SulfurCubeArchetypeClassArguments,
@@ -236,7 +238,7 @@ type PackNonMethodKeys =
236
238
  | 'conditions' | 'objectives' | 'anonymousScoreId' | 'anonymousDataId' | 'constants' | 'tickedLoops'
237
239
  | '__rootObjective' | 'packUid'
238
240
  | 'reset' | 'appendNode' | 'initMCFunction' | 'save' | 'resourceToPath' | 'rootObjective'
239
- | 'setupLantern' | 'dataPack' | 'resourcePack' | 'registerTickedCommands'
241
+ | 'setupLantern' | 'dataPack' | 'resourcePack' | 'registerTickedCommands' | 'Variant'
240
242
  type PackMethodKeys = Exclude<keyof SandstonePack, PackNonMethodKeys>
241
243
 
242
244
  // Creates a proxy that handles both callable methods and object-based properties.
@@ -293,6 +295,7 @@ export const {
293
295
  BannerPattern,
294
296
  ChatType,
295
297
  DamageType,
298
+ DecoratedPotPattern,
296
299
  Dialog,
297
300
  Enchantment,
298
301
  EnchantmentProvider,
@@ -302,6 +305,7 @@ export const {
302
305
  LootTable,
303
306
  Predicate,
304
307
  Recipe,
308
+ SlotSource,
305
309
  SulfurCubeArchetype,
306
310
  Tag,
307
311
  TestEnvironment,
@@ -311,7 +315,6 @@ export const {
311
315
  TrialSpawner,
312
316
  TrimMaterial,
313
317
  TrimPattern,
314
- Variant,
315
318
  VillagerTrade,
316
319
  WorldClock,
317
320
 
@@ -354,7 +357,40 @@ export const {
354
357
  defaultNamespace,
355
358
  } = packMethodsProxy
356
359
 
357
- export * from './variables/nbt/NBTs'
360
+ // Variant needs explicit type annotation due to complex generics
361
+ export const Variant: typeof sandstonePack.Variant = ((...args: unknown[]) =>
362
+ (sandstonePack.Variant as CallableFunction)(...args)) as typeof sandstonePack.Variant
363
+
364
+ // Explicit re-export (not `export *`) so the library builder can hoist
365
+ // these as top-level imports in the bundled main. Wildcard re-exports
366
+ // make it impossible for the bundler to know which names need to be
367
+ // imported into the bundled main's scope.
368
+ export {
369
+ NBTAnyValue,
370
+ NBTByte,
371
+ NBTByteArray,
372
+ NBTClass,
373
+ NBTDouble,
374
+ NBTFloat,
375
+ NBTInt,
376
+ NBTIntArray,
377
+ NBTList,
378
+ NBTLong,
379
+ NBTLongArray,
380
+ NBTPrimitive,
381
+ NBTRange,
382
+ NBTShort,
383
+ NBTString,
384
+ NBTTypedArray,
385
+ NotNBT,
386
+ ResolvedNBT,
387
+ type NBTAllArrays,
388
+ type NBTAllNumberClasses,
389
+ type NBTAllNumbers,
390
+ type NBTAllPrimitives,
391
+ type NBTAllValues,
392
+ type NBTSimpleClasses,
393
+ } from './variables/nbt/NBTs'
358
394
 
359
395
  export type { Condition } from './flow'
360
396
  export {
@@ -376,6 +412,7 @@ export {
376
412
  BannerPatternClass,
377
413
  ChatTypeClass,
378
414
  DamageTypeClass,
415
+ DecoratedPotPatternClass,
379
416
  DialogClass,
380
417
  EnchantmentClass,
381
418
  EnchantmentProviderClass,
@@ -385,6 +422,7 @@ export {
385
422
  LootTableClass,
386
423
  PredicateClass,
387
424
  RecipeClass,
425
+ SlotSourceClass,
388
426
  StructureClass,
389
427
  SulfurCubeArchetypeClass,
390
428
  TagClass,
@@ -667,6 +705,11 @@ type ContentStrategy =
667
705
  * Will override the defined `default` strategy.
668
706
  */
669
707
  | ContentStrategyKind<'recipe', NonNullable<RecipeClassArguments['onConflict']>>
708
+ /**
709
+ * The conflict strategy to use for Slot sources.
710
+ * Will override the defined `default` strategy.
711
+ */
712
+ | ContentStrategyKind<'slot_source', NonNullable<SlotSourceClassArguments['onConflict']>>
670
713
  /**
671
714
  * The conflict strategy to use for Sulfur cube archetypes.
672
715
  * Will override the defined `default` strategy.
@@ -702,6 +745,11 @@ type ContentStrategy =
702
745
  * Will override the defined `default` strategy.
703
746
  */
704
747
  | ContentStrategyKind<'chat_type', NonNullable<ChatTypeClassArguments['onConflict']>>
748
+ /**
749
+ * The conflict strategy to use for Decorated pot patterns.
750
+ * Will override the defined `default` strategy.
751
+ */
752
+ | ContentStrategyKind<'decorated_pot_pattern', NonNullable<DecoratedPotPatternClassArguments['onConflict']>>
705
753
  /**
706
754
  * The conflict strategy to use for Dialogs.
707
755
  * Will override the defined `default` strategy.
@@ -828,6 +876,11 @@ type ContentStrategy =
828
876
  * Will override the defined `default` strategy.
829
877
  */
830
878
  | ContentStrategyKind<'shader', NonNullable<ShaderClassArguments['onConflict']>>
879
+ /**
880
+ * The conflict strategy to use for SoundsIndex.
881
+ * Will override the defined `default` strategy.
882
+ */
883
+ | ContentStrategyKind<'sounds', NonNullable<SoundsIndexArguments['onConflict']>>
831
884
  /**
832
885
  * The conflict strategy to use for Waypoint styles.
833
886
  * Will override the defined `default` strategy.