sandstone 1.1.3 → 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 (445) hide show
  1. package/dist/_internal/index.d.ts +30 -234
  2. package/dist/_internal/index.d.ts.map +1 -1
  3. package/dist/_internal/index.js +2273 -552
  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/block/place.d.ts +1 -1
  257. package/dist/_internal/types/commands/implementations/block/place.d.ts.map +1 -1
  258. package/dist/_internal/types/commands/implementations/entity/execute.d.ts +53 -5
  259. package/dist/_internal/types/commands/implementations/entity/execute.d.ts.map +1 -1
  260. package/dist/_internal/types/commands/implementations/index.d.ts +1 -0
  261. package/dist/_internal/types/commands/implementations/index.d.ts.map +1 -1
  262. package/dist/_internal/types/commands/implementations/player/posteffect.d.ts +61 -0
  263. package/dist/_internal/types/commands/implementations/player/posteffect.d.ts.map +1 -0
  264. package/dist/_internal/types/commands/implementations/server/schedule.d.ts +1 -1
  265. package/dist/_internal/types/commands/implementations/world/item.d.ts +73 -11
  266. package/dist/_internal/types/commands/implementations/world/item.d.ts.map +1 -1
  267. package/dist/_internal/types/core/resources/datapack/decoratedPotPattern.d.ts +25 -0
  268. package/dist/_internal/types/core/resources/datapack/decoratedPotPattern.d.ts.map +1 -0
  269. package/dist/_internal/types/core/resources/datapack/index.d.ts +2 -0
  270. package/dist/_internal/types/core/resources/datapack/index.d.ts.map +1 -1
  271. package/dist/_internal/types/core/resources/datapack/slotSource.d.ts +27 -0
  272. package/dist/_internal/types/core/resources/datapack/slotSource.d.ts.map +1 -0
  273. package/dist/_internal/types/core/resources/index.d.ts +1 -1
  274. package/dist/_internal/types/core/resources/resourcepack/blockstate.d.ts +13 -13
  275. package/dist/_internal/types/core/resources/resourcepack/blockstate.d.ts.map +1 -1
  276. package/dist/_internal/types/flow/Flow.d.ts +58 -18
  277. package/dist/_internal/types/flow/Flow.d.ts.map +1 -1
  278. package/dist/_internal/types/flow/conditions/index.d.ts +3 -0
  279. package/dist/_internal/types/flow/conditions/index.d.ts.map +1 -1
  280. package/dist/_internal/types/flow/conditions/resources/index.d.ts +1 -0
  281. package/dist/_internal/types/flow/conditions/resources/index.d.ts.map +1 -1
  282. package/dist/_internal/types/flow/conditions/resources/slotSource.d.ts +14 -0
  283. package/dist/_internal/types/flow/conditions/resources/slotSource.d.ts.map +1 -0
  284. package/dist/_internal/types/flow/conditions/variables/items.d.ts +40 -7
  285. package/dist/_internal/types/flow/conditions/variables/items.d.ts.map +1 -1
  286. package/dist/_internal/types/flow/loop.d.ts +1 -1
  287. package/dist/_internal/types/pack/index.d.ts +1 -1
  288. package/dist/_internal/types/pack/pack.d.ts +13 -8
  289. package/dist/_internal/types/pack/pack.d.ts.map +1 -1
  290. package/dist/_internal/types/variables/Data.d.ts +1 -1
  291. package/dist/_internal/types/variables/DataSets.d.ts +4 -4
  292. package/dist/_internal/types/variables/DataSets.d.ts.map +1 -1
  293. package/dist/_internal/types/variables/ResolveNBT.d.ts +2 -2
  294. package/dist/browser/sandstone.esm.js +2273 -552
  295. package/dist/browser/sandstone.esm.js.map +1 -1
  296. package/dist/exports/arguments/index.d.ts +1 -1
  297. package/dist/exports/arguments/index.js +1 -1
  298. package/dist/exports/commands/index.d.ts +1 -1
  299. package/dist/exports/commands/index.js +1 -1
  300. package/dist/exports/core/index.d.ts +1 -1
  301. package/dist/exports/core/index.js +1 -1
  302. package/dist/exports/flow/index.d.ts +1 -1
  303. package/dist/exports/flow/index.js +1 -1
  304. package/dist/exports/index.d.ts +1 -1
  305. package/dist/exports/index.js +1 -1
  306. package/dist/exports/variables/index.d.ts +1 -1
  307. package/dist/exports/variables/index.js +1 -1
  308. package/package.json +3 -3
  309. package/src/arguments/generated/_builtin/block_state_keys.ts +232 -0
  310. package/src/arguments/generated/_builtin/block_states.ts +444 -0
  311. package/src/arguments/generated/_dispatcher/block.ts +20 -4
  312. package/src/arguments/generated/_dispatcher/resource.ts +33 -0
  313. package/src/arguments/generated/_registry/advancements.ts +114 -0
  314. package/src/arguments/generated/_registry/atlases.ts +0 -1
  315. package/src/arguments/generated/_registry/attribute_types.ts +1 -0
  316. package/src/arguments/generated/_registry/block_definitions.ts +58 -0
  317. package/src/arguments/generated/_registry/block_predicate_types.ts +1 -0
  318. package/src/arguments/generated/_registry/blocks.ts +58 -0
  319. package/src/arguments/generated/_registry/command_argument_types.ts +2 -0
  320. package/src/arguments/generated/_registry/custom_stats.ts +1 -0
  321. package/src/arguments/generated/_registry/data_component_types.ts +11 -0
  322. package/src/arguments/generated/_registry/decorated_pot_patterns.ts +0 -1
  323. package/src/arguments/generated/_registry/entity_types.ts +3 -0
  324. package/src/arguments/generated/_registry/environment_attributes.ts +3 -0
  325. package/src/arguments/generated/_registry/int_provider_types.ts +1 -0
  326. package/src/arguments/generated/_registry/item_definitions.ts +73 -0
  327. package/src/arguments/generated/_registry/items.ts +73 -0
  328. package/src/arguments/generated/_registry/langs.ts +1 -0
  329. package/src/arguments/generated/_registry/loot_condition_types.ts +1 -2
  330. package/src/arguments/generated/_registry/loot_function_types.ts +0 -1
  331. package/src/arguments/generated/_registry/loot_number_provider_types.ts +3 -0
  332. package/src/arguments/generated/_registry/loot_tables.ts +60 -0
  333. package/src/arguments/generated/_registry/models.ts +170 -2
  334. package/src/arguments/generated/_registry/number_providers.ts +35 -0
  335. package/src/arguments/generated/_registry/outgoing_rpc_methods.ts +4 -0
  336. package/src/arguments/generated/_registry/particle_types.ts +3 -0
  337. package/src/arguments/generated/_registry/post_effects.ts +0 -1
  338. package/src/arguments/generated/_registry/predicates.ts +12 -0
  339. package/src/arguments/generated/_registry/recipe_serializers.ts +1 -0
  340. package/src/arguments/generated/_registry/recipe_types.ts +1 -0
  341. package/src/arguments/generated/_registry/recipes.ts +393 -0
  342. package/src/arguments/generated/_registry/rule_tests.ts +4 -0
  343. package/src/arguments/generated/_registry/sound_events.ts +23 -0
  344. package/src/arguments/generated/_registry/sounds.ts +98 -8
  345. package/src/arguments/generated/_registry/structures.ts +279 -0
  346. package/src/arguments/generated/_registry/tag_blocks.ts +29 -3
  347. package/src/arguments/generated/_registry/tag_damage_types.ts +1 -0
  348. package/src/arguments/generated/_registry/tag_entity_types.ts +1 -0
  349. package/src/arguments/generated/_registry/tag_items.ts +7 -1
  350. package/src/arguments/generated/_registry/tag_worldgen_biomes.ts +18 -0
  351. package/src/arguments/generated/_registry/tag_worldgen_features.ts +10 -0
  352. package/src/arguments/generated/_registry/tag_worldgen_structures.ts +1 -0
  353. package/src/arguments/generated/_registry/textures.ts +101 -18
  354. package/src/arguments/generated/_registry/villager_trades.ts +3 -0
  355. package/src/arguments/generated/_registry/worldgen_biomes.ts +1 -0
  356. package/src/arguments/generated/_registry/worldgen_block_state_provider_types.ts +2 -0
  357. package/src/arguments/generated/_registry/worldgen_carver_types.ts +11 -0
  358. package/src/arguments/generated/_registry/worldgen_carvers.ts +1 -0
  359. package/src/arguments/generated/_registry/worldgen_density_function_types.ts +9 -1
  360. package/src/arguments/generated/_registry/worldgen_density_functions.ts +16 -0
  361. package/src/arguments/generated/_registry/worldgen_feature_types.ts +68 -0
  362. package/src/arguments/generated/_registry/worldgen_features.ts +220 -43
  363. package/src/arguments/generated/_registry/worldgen_foliage_placer_types.ts +1 -0
  364. package/src/arguments/generated/_registry/worldgen_material_condition_types.ts +20 -0
  365. package/src/arguments/generated/_registry/worldgen_material_conditions.ts +8 -11
  366. package/src/arguments/generated/_registry/worldgen_material_rule_types.ts +13 -0
  367. package/src/arguments/generated/_registry/worldgen_material_rules.ts +40 -4
  368. package/src/arguments/generated/_registry/worldgen_noises.ts +1 -0
  369. package/src/arguments/generated/_registry/worldgen_placed_features.ts +11 -0
  370. package/src/arguments/generated/_registry/worldgen_placement_modifier_types.ts +3 -1
  371. package/src/arguments/generated/_registry/worldgen_structure_placements.ts +1 -0
  372. package/src/arguments/generated/_registry/worldgen_structure_sets.ts +1 -0
  373. package/src/arguments/generated/_registry/worldgen_structures.ts +18 -0
  374. package/src/arguments/generated/_registry/worldgen_template_pools.ts +57 -0
  375. package/src/arguments/generated/_registry/worldgen_tree_decorator_types.ts +1 -0
  376. package/src/arguments/generated/_registry/worldgen_trunk_placer_types.ts +1 -0
  377. package/src/arguments/generated/assets/atlas.ts +1 -1
  378. package/src/arguments/generated/assets/equipment.ts +7 -0
  379. package/src/arguments/generated/assets/item_definition.ts +0 -12
  380. package/src/arguments/generated/assets/model.ts +11 -0
  381. package/src/arguments/generated/assets/texture_meta.ts +6 -0
  382. package/src/arguments/generated/data/advancement/predicate.ts +9 -26
  383. package/src/arguments/generated/data/advancement/trigger.ts +29 -13
  384. package/src/arguments/generated/data/advancement.ts +2 -1
  385. package/src/arguments/generated/data/dialog.ts +1 -1
  386. package/src/arguments/generated/data/item_modifier.ts +7 -1
  387. package/src/arguments/generated/data/loot/condition.ts +10 -2
  388. package/src/arguments/generated/data/loot/function.ts +22 -4
  389. package/src/arguments/generated/data/loot.ts +34 -6
  390. package/src/arguments/generated/data/number_provider.ts +26 -4
  391. package/src/arguments/generated/data/predicate.ts +8 -2
  392. package/src/arguments/generated/data/recipe.ts +4 -0
  393. package/src/arguments/generated/data/slot_source.ts +23 -2
  394. package/src/arguments/generated/data/trim.ts +5 -0
  395. package/src/arguments/generated/data/variants/instrument.ts +18 -3
  396. package/src/arguments/generated/data/villager_trade.ts +9 -0
  397. package/src/arguments/generated/data/worldgen/attribute.ts +24 -1
  398. package/src/arguments/generated/data/worldgen/biome.ts +3 -1
  399. package/src/arguments/generated/data/worldgen/carver.ts +34 -7
  400. package/src/arguments/generated/data/worldgen/density_function.ts +41 -4
  401. package/src/arguments/generated/data/worldgen/dimension.ts +1 -2
  402. package/src/arguments/generated/data/worldgen/feature/block_state_provider.ts +21 -1
  403. package/src/arguments/generated/data/worldgen/feature/placement.ts +13 -1
  404. package/src/arguments/generated/data/worldgen/feature/tree.ts +13 -3
  405. package/src/arguments/generated/data/worldgen/feature.ts +59 -65
  406. package/src/arguments/generated/data/worldgen/material_condition.ts +7 -3
  407. package/src/arguments/generated/data/worldgen/material_rule.ts +7 -3
  408. package/src/arguments/generated/data/worldgen/noise_settings.ts +4 -1
  409. package/src/arguments/generated/data/worldgen/processor_list.ts +17 -2
  410. package/src/arguments/generated/data/worldgen.ts +7 -0
  411. package/src/arguments/generated/dispatcher.ts +8 -8
  412. package/src/arguments/generated/registry-sets.ts +14 -8
  413. package/src/arguments/generated/registry.ts +22 -15
  414. package/src/arguments/generated/resource-paths.ts +3 -0
  415. package/src/arguments/generated/resources.ts +6 -2
  416. package/src/arguments/generated/world/block/brewing_stand.ts +15 -3
  417. package/src/arguments/generated/world/block/decorated_pot.ts +7 -0
  418. package/src/arguments/generated/world/block/furnace.ts +9 -5
  419. package/src/arguments/generated/world/block/sign.ts +8 -0
  420. package/src/arguments/generated/world/component/item.ts +58 -8
  421. package/src/arguments/generated/world/component/predicate.ts +1 -1
  422. package/src/arguments/generated/world/entity/boat.ts +13 -0
  423. package/src/arguments/generated/world/entity/mob/player.ts +12 -1
  424. package/src/arguments/generated/world/entity/mob.ts +0 -4
  425. package/src/arguments/generated/world/entity/projectile.ts +2 -0
  426. package/src/arguments/generated/world/entity.ts +4 -0
  427. package/src/commands/commands.ts +5 -0
  428. package/src/commands/implementations/block/place.ts +1 -1
  429. package/src/commands/implementations/entity/execute.ts +65 -8
  430. package/src/commands/implementations/index.ts +1 -0
  431. package/src/commands/implementations/player/posteffect.ts +75 -0
  432. package/src/commands/implementations/world/item.ts +96 -19
  433. package/src/core/resources/datapack/{decoratedPotPattern.ts.disable → decoratedPotPattern.ts} +3 -3
  434. package/src/core/resources/datapack/index.ts +2 -2
  435. package/src/core/resources/datapack/itemModifier.ts +2 -2
  436. package/src/core/resources/datapack/{slotSource.ts.disable → slotSource.ts} +15 -4
  437. package/src/core/resources/resourcepack/blockstate.ts +32 -32
  438. package/src/flow/Flow.ts +67 -15
  439. package/src/flow/conditions/index.ts +3 -0
  440. package/src/flow/conditions/resources/index.ts +1 -0
  441. package/src/flow/conditions/resources/slotSource.ts +21 -0
  442. package/src/flow/conditions/variables/items.ts +53 -5
  443. package/src/pack/pack.ts +37 -35
  444. package/src/sandstone.ts +52 -15
  445. package/src/variables/DataSets.ts +4 -4
@@ -6,115 +6,115 @@ import type { ListResource, ResourceClassArguments, ResourceNode } from '../reso
6
6
  import { ResourceClass, jsonStringify } from '../resource'
7
7
  import type { AllKeys } from 'sandstone/utils'
8
8
 
9
- export type BlockStateJSON = NonNullable<MCDocToJSON<SymbolResource['block_definition']>>
10
- export type BlockStateType = AllKeys<BlockStateJSON>
9
+ export type BlockStateDefinitionJSON = NonNullable<MCDocToJSON<SymbolResource['block_definition']>>
10
+ export type BlockStateDefinitionType = AllKeys<BlockStateDefinitionJSON>
11
11
 
12
12
  /**
13
- * A node representing a Minecraft block state.
13
+ * A node representing a Minecraft block state definition.
14
14
  */
15
- export class BlockStateNode<JSON extends BlockStateJSON>
15
+ export class BlockStateDefinitionNode<JSON extends BlockStateDefinitionJSON>
16
16
  extends ContainerNode
17
- implements ResourceNode<BlockStateClass<JSON>> {
17
+ implements ResourceNode<BlockStateDefinitionClass<JSON>> {
18
18
  constructor(
19
19
  sandstoneCore: SandstoneCore,
20
- public resource: BlockStateClass<JSON>,
20
+ public resource: BlockStateDefinitionClass<JSON>,
21
21
  ) {
22
22
  super(sandstoneCore)
23
23
  }
24
24
 
25
- getValue = () => jsonStringify(this.resource.blockStateJSON, this.resource._resourceType as keyof typeof RESOURCE_PATHS)
25
+ getValue = () => jsonStringify(this.resource.blockStateDefinitionJSON, this.resource._resourceType as keyof typeof RESOURCE_PATHS)
26
26
  }
27
27
 
28
- export type BlockStateArguments<JSON extends BlockStateJSON> = {
28
+ export type BlockStateDefinitionArguments<JSON extends BlockStateDefinitionJSON> = {
29
29
  /**
30
- * The block state's JSON.
30
+ * The block state definition's JSON.
31
31
  */
32
32
  json: JSON
33
33
  } & ResourceClassArguments<'list'>
34
34
 
35
- export class BlockStateClass<JSON extends BlockStateJSON, Type = Extract<AllKeys<JSON>, BlockStateType>>
36
- extends ResourceClass<BlockStateNode<JSON>>
35
+ export class BlockStateDefinitionClass<JSON extends BlockStateDefinitionJSON, Type = Extract<AllKeys<JSON>, BlockStateDefinitionType>>
36
+ extends ResourceClass<BlockStateDefinitionNode<JSON>>
37
37
  implements ListResource {
38
38
  static readonly resourceType = 'block_definition'
39
39
 
40
- blockStateJSON: JSON
40
+ blockStateDefinitionJSON: JSON
41
41
 
42
42
  type: Type
43
43
 
44
44
  constructor(
45
45
  core: SandstoneCore,
46
46
  name: string,
47
- args: BlockStateArguments<JSON>,
47
+ args: BlockStateDefinitionArguments<JSON>,
48
48
  ) {
49
49
  super(
50
50
  core,
51
51
  { packType: core.pack.resourcePack() },
52
- BlockStateNode,
53
- BlockStateClass.resourceType,
54
- core.pack.resourceToPath(name, RESOURCE_PATHS[BlockStateClass.resourceType].path),
52
+ BlockStateDefinitionNode,
53
+ BlockStateDefinitionClass.resourceType,
54
+ core.pack.resourceToPath(name, RESOURCE_PATHS[BlockStateDefinitionClass.resourceType].path),
55
55
  args,
56
56
  )
57
57
 
58
- this.blockStateJSON = args.json
58
+ this.blockStateDefinitionJSON = args.json
59
59
 
60
- this.type = Object.keys(this.blockStateJSON)[0] as Type
60
+ this.type = Object.keys(this.blockStateDefinitionJSON)[0] as Type
61
61
 
62
62
  this.handleConflicts()
63
63
  }
64
64
 
65
- push(...states: BlockStateClass<any, Type>[] | BlockStateJSON[]) {
65
+ push(...states: BlockStateDefinitionClass<any, Type>[] | BlockStateDefinitionJSON[]) {
66
66
  if (this.type === 'variants') {
67
- if (states[0] instanceof BlockStateClass) {
67
+ if (states[0] instanceof BlockStateDefinitionClass) {
68
68
  for (const state of states) {
69
69
  /** @ts-ignore */
70
- this.blockStateJSON.variants = { ...this.blockStateJSON.variants, ...state.blockStateJSON.variants }
70
+ this.blockStateDefinitionJSON.variants = { ...this.blockStateDefinitionJSON.variants, ...state.blockStateDefinitionJSON.variants }
71
71
  }
72
72
  } else {
73
73
  for (const state of states) {
74
74
  /** @ts-ignore */
75
- this.blockStateJSON.variants = { ...this.blockStateJSON.variants, ...state.variants }
75
+ this.blockStateDefinitionJSON.variants = { ...this.blockStateDefinitionJSON.variants, ...state.variants }
76
76
  }
77
77
  }
78
78
  }
79
79
  if (this.type === 'multipart') {
80
- if (states[0] instanceof BlockStateClass) {
80
+ if (states[0] instanceof BlockStateDefinitionClass) {
81
81
  for (const state of states) {
82
82
  /** @ts-ignore */
83
- this.blockStateJSON.multipart.push(...state.blockStateJSON.multipart)
83
+ this.blockStateDefinitionJSON.multipart.push(...state.blockStateDefinitionJSON.multipart)
84
84
  }
85
85
  } else {
86
86
  for (const state of states) {
87
87
  /** @ts-ignore */
88
- this.blockStateJSON.multipart.push(...state.multipart)
88
+ this.blockStateDefinitionJSON.multipart.push(...state.multipart)
89
89
  }
90
90
  }
91
91
  }
92
92
  }
93
93
 
94
- unshift(...states: BlockStateClass<any, Type>[] | BlockStateJSON[]) {
94
+ unshift(...states: BlockStateDefinitionClass<any, Type>[] | BlockStateDefinitionJSON[]) {
95
95
  if (this.type === 'variants') {
96
- if (states[0] instanceof BlockStateClass) {
96
+ if (states[0] instanceof BlockStateDefinitionClass) {
97
97
  for (const state of states) {
98
98
  /** @ts-ignore */
99
- this.blockStateJSON.variants = { ...state.blockStateJSON.variants, ...this.blockStateJSON.variants }
99
+ this.blockStateDefinitionJSON.variants = { ...state.blockStateDefinitionJSON.variants, ...this.blockStateDefinitionJSON.variants }
100
100
  }
101
101
  } else {
102
102
  for (const state of states) {
103
103
  /** @ts-ignore */
104
- this.blockStateJSON.variants = { ...state.variants, ...this.blockStateJSON.variants }
104
+ this.blockStateDefinitionJSON.variants = { ...state.variants, ...this.blockStateDefinitionJSON.variants }
105
105
  }
106
106
  }
107
107
  }
108
108
  if (this.type === 'multipart') {
109
- if (states[0] instanceof BlockStateClass) {
109
+ if (states[0] instanceof BlockStateDefinitionClass) {
110
110
  for (const state of states) {
111
111
  /** @ts-ignore */
112
- this.blockStateJSON.multipart.unshift(...state.blockStateJSON.multipart)
112
+ this.blockStateDefinitionJSON.multipart.unshift(...state.blockStateDefinitionJSON.multipart)
113
113
  }
114
114
  } else {
115
115
  for (const state of states) {
116
116
  /** @ts-ignore */
117
- this.blockStateJSON.multipart.unshift(...state.multipart)
117
+ this.blockStateDefinitionJSON.multipart.unshift(...state.multipart)
118
118
  }
119
119
  }
120
120
  }
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
@@ -24,12 +24,12 @@ import type {
24
24
  AdvancementClassArguments,
25
25
  AtlasClassArguments,
26
26
  BannerPatternClassArguments,
27
- BlockStateArguments,
28
- BlockStateJSON,
27
+ BlockStateDefinitionArguments,
28
+ BlockStateDefinitionJSON,
29
29
  ChatTypeClassArguments,
30
30
  DamageTypeClassArguments,
31
31
  DataPointPickClass,
32
- // DecoratedPotPatternClassArguments,
32
+ DecoratedPotPatternClassArguments,
33
33
  DialogClassArguments,
34
34
  EnchantmentClassArguments,
35
35
  EnchantmentProviderClassArguments,
@@ -52,7 +52,7 @@ import type {
52
52
  PredicateClassArguments,
53
53
  RecipeClassArguments,
54
54
  ShaderClassArguments,
55
- // SlotSourceClassArguments,
55
+ SlotSourceClassArguments,
56
56
  SoundEventArguments,
57
57
  SoundsIndexArguments,
58
58
  SulfurCubeArchetypeClassArguments,
@@ -76,10 +76,10 @@ import {
76
76
  AdvancementClass,
77
77
  AtlasClass,
78
78
  BannerPatternClass,
79
- BlockStateClass,
79
+ BlockStateDefinitionClass,
80
80
  ChatTypeClass,
81
81
  DamageTypeClass,
82
- // DecoratedPotPatternClass,
82
+ DecoratedPotPatternClass,
83
83
  DialogClass,
84
84
  EnchantmentClass,
85
85
  EnchantmentProviderClass,
@@ -102,7 +102,7 @@ import {
102
102
  RecipeClass,
103
103
  SandstoneCore,
104
104
  ShaderClass,
105
- // SlotSourceClass,
105
+ SlotSourceClass,
106
106
  SoundEventClass,
107
107
  SoundsIndexClass,
108
108
  SulfurCubeArchetypeClass,
@@ -140,9 +140,11 @@ import type {
140
140
  } from 'sandstone/variables'
141
141
  import {
142
142
  coordinatesParser,
143
- DataArray,
143
+ DataArrayType,
144
+ DataArrayInternal,
144
145
  DataClass,
145
- DataIndexMap,
146
+ DataIndexMapType,
147
+ DataIndexMapInternal,
146
148
  DataPointClass,
147
149
  ItemPredicateClass,
148
150
  LabelClass,
@@ -316,11 +318,11 @@ export class SandstonePack {
316
318
  }
317
319
  return {
318
320
  datapack: {
319
- packFormat: 61,
321
+ packFormat: 112,
320
322
  description: 'A Sandstone datapack',
321
323
  },
322
324
  resourcepack: {
323
- packFormat: 46,
325
+ packFormat: 93,
324
326
  description: 'A Sandstone resource pack',
325
327
  },
326
328
  }
@@ -446,7 +448,7 @@ export class SandstonePack {
446
448
  let pack = this.packTypes.get('datapack') as DataPack
447
449
 
448
450
  if (!pack) {
449
- const options = this.packOptions.datapack ?? { packFormat: 98, description: 'A Sandstone datapack' }
451
+ const options = this.packOptions.datapack ?? { packFormat: 112, description: 'A Sandstone datapack' }
450
452
  pack = this.packTypes.set('datapack', new DataPack(false, options)).get('datapack') as DataPack
451
453
  }
452
454
 
@@ -457,7 +459,7 @@ export class SandstonePack {
457
459
  let pack = this.packTypes.get('resourcepack') as ResourcePack
458
460
 
459
461
  if (!pack) {
460
- const options = this.packOptions.resourcepack ?? { packFormat: 79, description: 'A Sandstone resource pack' }
462
+ const options = this.packOptions.resourcepack ?? { packFormat: 93, description: 'A Sandstone resource pack' }
461
463
  pack = this.packTypes
462
464
  .set('resourcepack', new ResourcePack(options))
463
465
  .get('resourcepack') as ResourcePack
@@ -832,14 +834,14 @@ export class SandstonePack {
832
834
  initialize: INITIAL,
833
835
  dataPoint?: DataPointClass<'storage'>,
834
836
  ) {
835
- return DataIndexMap(this, initialize, dataPoint) as DataIndexMap<INITIAL>
837
+ return DataIndexMapInternal(this, initialize, dataPoint) as DataIndexMapType<INITIAL>
836
838
  }
837
839
 
838
840
  DataArray<INITIAL extends readonly NBTObject[] | readonly [string, DataPointClass | DataPointPickClass]>(
839
841
  initialize: INITIAL,
840
842
  dataPoint?: DataPointClass<'storage'>,
841
843
  ) {
842
- return DataArray(this, initialize, dataPoint) as DataArray<INITIAL>
844
+ return DataArrayInternal(this, initialize, dataPoint) as DataArrayType<INITIAL>
843
845
  }
844
846
 
845
847
  getTempStorage = (name: string) => {
@@ -1123,14 +1125,14 @@ export class SandstonePack {
1123
1125
  ...options,
1124
1126
  })
1125
1127
 
1126
- // DecoratedPotPattern = (name: string, decoratedPotPattern: NonNullable<SymbolResource['decorated_pot_pattern']>, options?: Partial<DecoratedPotPatternClassArguments>) =>
1127
- // new DecoratedPotPatternClass(this.core, name, {
1128
- // json: decoratedPotPattern,
1129
- // creator: 'user',
1130
- // addToSandstoneCore: true,
1131
- // onConflict: conflictDefaults('decorated_pot_pattern') as DecoratedPotPatternClassArguments['onConflict'],
1132
- // ...options,
1133
- // })
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
+ })
1134
1136
 
1135
1137
  ItemModifier = (name: string, itemModifier: ItemModifierClassArguments['json'], options?: Omit<Partial<ItemModifierClassArguments>, 'json'>) =>
1136
1138
  new ItemModifierClass(this.core, name, {
@@ -1172,14 +1174,14 @@ export class SandstonePack {
1172
1174
  ...options,
1173
1175
  })
1174
1176
 
1175
- // SlotSource = (name: string, slotSource: NonNullable<SymbolResource['slot_source']>, options?: Partial<SlotSourceClassArguments>) =>
1176
- // new SlotSourceClass(this.core, name, {
1177
- // json: slotSource,
1178
- // creator: 'user',
1179
- // addToSandstoneCore: true,
1180
- // onConflict: conflictDefaults('slot_source') as SlotSourceClassArguments['onConflict'],
1181
- // ...options,
1182
- // })
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
+ })
1183
1185
 
1184
1186
  SulfurCubeArchetype = (name: string, sulfurCubeArchetype: SulfurCubeArchetypeClassArguments['json'], options?: Omit<Partial<SulfurCubeArchetypeClassArguments>, 'json'>) =>
1185
1187
  new SulfurCubeArchetypeClass(this.core, name, {
@@ -1366,16 +1368,16 @@ export class SandstonePack {
1366
1368
  ...options,
1367
1369
  })
1368
1370
 
1369
- BlockState<JSON extends BlockStateJSON>(
1371
+ BlockStateDefinition<JSON extends BlockStateDefinitionJSON>(
1370
1372
  name: string,
1371
1373
  json: JSON,
1372
- options?: Omit<Partial<BlockStateArguments<JSON>>, 'json'>,
1374
+ options?: Omit<Partial<BlockStateDefinitionArguments<JSON>>, 'json'>,
1373
1375
  ) {
1374
- return new BlockStateClass(this.core, name, {
1376
+ return new BlockStateDefinitionClass(this.core, name, {
1375
1377
  json,
1376
1378
  creator: 'user',
1377
1379
  addToSandstoneCore: true,
1378
- onConflict: conflictDefaults('blockstate') as BlockStateArguments<JSON>['onConflict'],
1380
+ onConflict: conflictDefaults('blockstate') as BlockStateDefinitionArguments<JSON>['onConflict'],
1379
1381
  ...options,
1380
1382
  })
1381
1383
  }