sandstone 1.1.6 → 1.2.1

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 (443) 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 +2261 -692
  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 +32 -6
  271. package/dist/_internal/types/flow/Flow.d.ts.map +1 -1
  272. package/dist/_internal/types/flow/conditions/command.d.ts.map +1 -1
  273. package/dist/_internal/types/flow/conditions/condition.d.ts +0 -8
  274. package/dist/_internal/types/flow/conditions/condition.d.ts.map +1 -1
  275. package/dist/_internal/types/flow/conditions/index.d.ts +3 -0
  276. package/dist/_internal/types/flow/conditions/index.d.ts.map +1 -1
  277. package/dist/_internal/types/flow/conditions/resources/index.d.ts +1 -0
  278. package/dist/_internal/types/flow/conditions/resources/index.d.ts.map +1 -1
  279. package/dist/_internal/types/flow/conditions/resources/slotSource.d.ts +14 -0
  280. package/dist/_internal/types/flow/conditions/resources/slotSource.d.ts.map +1 -0
  281. package/dist/_internal/types/flow/conditions/variables/dataPoint.d.ts.map +1 -1
  282. package/dist/_internal/types/flow/conditions/variables/items.d.ts +40 -7
  283. package/dist/_internal/types/flow/conditions/variables/items.d.ts.map +1 -1
  284. package/dist/_internal/types/pack/pack.d.ts +8 -3
  285. package/dist/_internal/types/pack/pack.d.ts.map +1 -1
  286. package/dist/_internal/types/pack/visitors/orTransformationVisitor.d.ts +6 -41
  287. package/dist/_internal/types/pack/visitors/orTransformationVisitor.d.ts.map +1 -1
  288. package/dist/_internal/types/variables/abstractClasses.d.ts +0 -9
  289. package/dist/_internal/types/variables/abstractClasses.d.ts.map +1 -1
  290. package/dist/browser/sandstone.esm.js +2261 -692
  291. package/dist/browser/sandstone.esm.js.map +1 -1
  292. package/dist/exports/arguments/index.d.ts +1 -1
  293. package/dist/exports/arguments/index.js +1 -1
  294. package/dist/exports/commands/index.d.ts +1 -1
  295. package/dist/exports/commands/index.js +1 -1
  296. package/dist/exports/core/index.d.ts +1 -1
  297. package/dist/exports/core/index.js +1 -1
  298. package/dist/exports/flow/index.d.ts +1 -1
  299. package/dist/exports/flow/index.js +1 -1
  300. package/dist/exports/index.d.ts +1 -1
  301. package/dist/exports/index.js +1 -1
  302. package/dist/exports/variables/index.d.ts +1 -1
  303. package/dist/exports/variables/index.js +1 -1
  304. package/package.json +3 -3
  305. package/src/arguments/generated/_builtin/block_state_keys.ts +232 -0
  306. package/src/arguments/generated/_builtin/block_states.ts +444 -0
  307. package/src/arguments/generated/_dispatcher/block.ts +20 -4
  308. package/src/arguments/generated/_dispatcher/resource.ts +33 -0
  309. package/src/arguments/generated/_registry/advancements.ts +114 -0
  310. package/src/arguments/generated/_registry/atlases.ts +0 -1
  311. package/src/arguments/generated/_registry/attribute_types.ts +1 -0
  312. package/src/arguments/generated/_registry/block_definitions.ts +58 -0
  313. package/src/arguments/generated/_registry/block_predicate_types.ts +1 -0
  314. package/src/arguments/generated/_registry/blocks.ts +58 -0
  315. package/src/arguments/generated/_registry/command_argument_types.ts +2 -0
  316. package/src/arguments/generated/_registry/custom_stats.ts +1 -0
  317. package/src/arguments/generated/_registry/data_component_types.ts +11 -0
  318. package/src/arguments/generated/_registry/decorated_pot_patterns.ts +0 -1
  319. package/src/arguments/generated/_registry/entity_types.ts +3 -0
  320. package/src/arguments/generated/_registry/environment_attributes.ts +3 -0
  321. package/src/arguments/generated/_registry/int_provider_types.ts +1 -0
  322. package/src/arguments/generated/_registry/item_definitions.ts +73 -0
  323. package/src/arguments/generated/_registry/items.ts +73 -0
  324. package/src/arguments/generated/_registry/langs.ts +1 -0
  325. package/src/arguments/generated/_registry/loot_condition_types.ts +1 -2
  326. package/src/arguments/generated/_registry/loot_function_types.ts +0 -1
  327. package/src/arguments/generated/_registry/loot_number_provider_types.ts +3 -0
  328. package/src/arguments/generated/_registry/loot_tables.ts +60 -0
  329. package/src/arguments/generated/_registry/models.ts +170 -2
  330. package/src/arguments/generated/_registry/number_providers.ts +35 -0
  331. package/src/arguments/generated/_registry/outgoing_rpc_methods.ts +4 -0
  332. package/src/arguments/generated/_registry/particle_types.ts +3 -0
  333. package/src/arguments/generated/_registry/post_effects.ts +0 -1
  334. package/src/arguments/generated/_registry/predicates.ts +12 -0
  335. package/src/arguments/generated/_registry/recipe_serializers.ts +1 -0
  336. package/src/arguments/generated/_registry/recipe_types.ts +1 -0
  337. package/src/arguments/generated/_registry/recipes.ts +393 -0
  338. package/src/arguments/generated/_registry/rule_tests.ts +4 -0
  339. package/src/arguments/generated/_registry/sound_events.ts +23 -0
  340. package/src/arguments/generated/_registry/sounds.ts +98 -8
  341. package/src/arguments/generated/_registry/structures.ts +279 -0
  342. package/src/arguments/generated/_registry/tag_blocks.ts +29 -3
  343. package/src/arguments/generated/_registry/tag_damage_types.ts +1 -0
  344. package/src/arguments/generated/_registry/tag_entity_types.ts +1 -0
  345. package/src/arguments/generated/_registry/tag_items.ts +7 -1
  346. package/src/arguments/generated/_registry/tag_worldgen_biomes.ts +18 -0
  347. package/src/arguments/generated/_registry/tag_worldgen_features.ts +10 -0
  348. package/src/arguments/generated/_registry/tag_worldgen_structures.ts +1 -0
  349. package/src/arguments/generated/_registry/textures.ts +101 -18
  350. package/src/arguments/generated/_registry/villager_trades.ts +3 -0
  351. package/src/arguments/generated/_registry/worldgen_biomes.ts +1 -0
  352. package/src/arguments/generated/_registry/worldgen_block_state_provider_types.ts +2 -0
  353. package/src/arguments/generated/_registry/worldgen_carver_types.ts +11 -0
  354. package/src/arguments/generated/_registry/worldgen_carvers.ts +1 -0
  355. package/src/arguments/generated/_registry/worldgen_density_function_types.ts +9 -1
  356. package/src/arguments/generated/_registry/worldgen_density_functions.ts +16 -0
  357. package/src/arguments/generated/_registry/worldgen_feature_types.ts +68 -0
  358. package/src/arguments/generated/_registry/worldgen_features.ts +220 -43
  359. package/src/arguments/generated/_registry/worldgen_foliage_placer_types.ts +1 -0
  360. package/src/arguments/generated/_registry/worldgen_material_condition_types.ts +20 -0
  361. package/src/arguments/generated/_registry/worldgen_material_conditions.ts +8 -11
  362. package/src/arguments/generated/_registry/worldgen_material_rule_types.ts +13 -0
  363. package/src/arguments/generated/_registry/worldgen_material_rules.ts +40 -4
  364. package/src/arguments/generated/_registry/worldgen_noises.ts +1 -0
  365. package/src/arguments/generated/_registry/worldgen_placed_features.ts +11 -0
  366. package/src/arguments/generated/_registry/worldgen_placement_modifier_types.ts +3 -1
  367. package/src/arguments/generated/_registry/worldgen_structure_placements.ts +1 -0
  368. package/src/arguments/generated/_registry/worldgen_structure_sets.ts +1 -0
  369. package/src/arguments/generated/_registry/worldgen_structures.ts +18 -0
  370. package/src/arguments/generated/_registry/worldgen_template_pools.ts +57 -0
  371. package/src/arguments/generated/_registry/worldgen_tree_decorator_types.ts +1 -0
  372. package/src/arguments/generated/_registry/worldgen_trunk_placer_types.ts +1 -0
  373. package/src/arguments/generated/assets/atlas.ts +1 -1
  374. package/src/arguments/generated/assets/equipment.ts +7 -0
  375. package/src/arguments/generated/assets/item_definition.ts +0 -12
  376. package/src/arguments/generated/assets/model.ts +11 -0
  377. package/src/arguments/generated/assets/texture_meta.ts +6 -0
  378. package/src/arguments/generated/data/advancement/predicate.ts +9 -26
  379. package/src/arguments/generated/data/advancement/trigger.ts +29 -13
  380. package/src/arguments/generated/data/advancement.ts +2 -1
  381. package/src/arguments/generated/data/dialog.ts +1 -1
  382. package/src/arguments/generated/data/item_modifier.ts +7 -1
  383. package/src/arguments/generated/data/loot/condition.ts +10 -2
  384. package/src/arguments/generated/data/loot/function.ts +22 -4
  385. package/src/arguments/generated/data/loot.ts +34 -6
  386. package/src/arguments/generated/data/number_provider.ts +26 -4
  387. package/src/arguments/generated/data/predicate.ts +8 -2
  388. package/src/arguments/generated/data/recipe.ts +4 -0
  389. package/src/arguments/generated/data/slot_source.ts +23 -2
  390. package/src/arguments/generated/data/trim.ts +5 -0
  391. package/src/arguments/generated/data/variants/instrument.ts +18 -3
  392. package/src/arguments/generated/data/villager_trade.ts +9 -0
  393. package/src/arguments/generated/data/worldgen/attribute.ts +24 -1
  394. package/src/arguments/generated/data/worldgen/biome.ts +3 -1
  395. package/src/arguments/generated/data/worldgen/carver.ts +34 -7
  396. package/src/arguments/generated/data/worldgen/density_function.ts +41 -4
  397. package/src/arguments/generated/data/worldgen/dimension.ts +1 -2
  398. package/src/arguments/generated/data/worldgen/feature/block_state_provider.ts +21 -1
  399. package/src/arguments/generated/data/worldgen/feature/placement.ts +13 -1
  400. package/src/arguments/generated/data/worldgen/feature/tree.ts +13 -3
  401. package/src/arguments/generated/data/worldgen/feature.ts +59 -65
  402. package/src/arguments/generated/data/worldgen/material_condition.ts +7 -3
  403. package/src/arguments/generated/data/worldgen/material_rule.ts +7 -3
  404. package/src/arguments/generated/data/worldgen/noise_settings.ts +4 -1
  405. package/src/arguments/generated/data/worldgen/processor_list.ts +17 -2
  406. package/src/arguments/generated/data/worldgen.ts +7 -0
  407. package/src/arguments/generated/dispatcher.ts +8 -8
  408. package/src/arguments/generated/registry-sets.ts +14 -8
  409. package/src/arguments/generated/registry.ts +22 -15
  410. package/src/arguments/generated/resource-paths.ts +3 -0
  411. package/src/arguments/generated/resources.ts +4 -0
  412. package/src/arguments/generated/world/block/brewing_stand.ts +15 -3
  413. package/src/arguments/generated/world/block/decorated_pot.ts +7 -0
  414. package/src/arguments/generated/world/block/furnace.ts +9 -5
  415. package/src/arguments/generated/world/block/sign.ts +8 -0
  416. package/src/arguments/generated/world/component/item.ts +58 -8
  417. package/src/arguments/generated/world/component/predicate.ts +1 -1
  418. package/src/arguments/generated/world/entity/boat.ts +13 -0
  419. package/src/arguments/generated/world/entity/mob/player.ts +12 -1
  420. package/src/arguments/generated/world/entity/mob.ts +0 -4
  421. package/src/arguments/generated/world/entity/projectile.ts +2 -0
  422. package/src/arguments/generated/world/entity.ts +4 -0
  423. package/src/commands/commands.ts +5 -0
  424. package/src/commands/implementations/entity/execute.ts +65 -8
  425. package/src/commands/implementations/index.ts +1 -0
  426. package/src/commands/implementations/player/posteffect.ts +75 -0
  427. package/src/commands/implementations/world/item.ts +96 -19
  428. package/src/core/resources/datapack/decoratedPotPattern.ts +47 -0
  429. package/src/core/resources/datapack/index.ts +2 -2
  430. package/src/core/resources/datapack/slotSource.ts +58 -0
  431. package/src/flow/Flow.ts +43 -11
  432. package/src/flow/conditions/command.ts +0 -7
  433. package/src/flow/conditions/condition.ts +0 -9
  434. package/src/flow/conditions/index.ts +3 -0
  435. package/src/flow/conditions/resources/index.ts +1 -0
  436. package/src/flow/conditions/resources/slotSource.ts +21 -0
  437. package/src/flow/conditions/variables/dataPoint.ts +3 -11
  438. package/src/flow/conditions/variables/items.ts +53 -5
  439. package/src/pack/pack.ts +28 -7
  440. package/src/pack/visitors/orTransformationVisitor.ts +37 -311
  441. package/src/sandstone.ts +56 -3
  442. package/src/utils.ts +1 -1
  443. package/src/variables/abstractClasses.ts +0 -10
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'
@@ -486,24 +485,57 @@ export class Flow {
486
485
  * Test for items in a block entity's inventory slots.
487
486
  *
488
487
  * @param sourcePos Position of the block entity to test.
489
- * @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).
490
489
  * @param itemPredicate Item predicate to match against.
491
490
  */
492
- block: (sourcePos: Coordinates, slots: ContainerSlotSelector, itemPredicate: ItemPredicate) => ItemsBlockConditionNode
491
+ block: (sourcePos: Coordinates, slotSource: ItemSlotSource, itemPredicate: ItemPredicate) => ItemsBlockConditionNode
493
492
  /**
494
493
  * Test for items in an entity's inventory slots.
495
494
  *
496
495
  * @param source Entity to test.
497
- * @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).
498
497
  * @param itemPredicate Item predicate to match against.
499
498
  */
500
- entity: (source: MultipleEntitiesArgument, slots: EntitySlotSelector, itemPredicate: ItemPredicate) => ItemsEntityConditionNode
499
+ entity: (source: MultipleEntitiesArgument, slotSource: ItemSlotSource, itemPredicate: ItemPredicate) => ItemsEntityConditionNode
501
500
  } {
502
501
  return {
503
- block: (sourcePos: Coordinates, slots: ContainerSlotSelector, itemPredicate: ItemPredicate) =>
504
- new SandstoneConditions.ItemsBlock(this.sandstoneCore, sourcePos, slots, itemPredicate),
505
- entity: (source: MultipleEntitiesArgument, slots: EntitySlotSelector, itemPredicate: ItemPredicate) =>
506
- new SandstoneConditions.ItemsEntity(this.sandstoneCore, source, slots, itemPredicate),
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
533
+ } {
534
+ return {
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),
507
539
  }
508
540
  }
509
541
 
@@ -20,14 +20,7 @@ export class CommandConditionNode extends SingleConditionNode {
20
20
  const store = sandstoneCore.pack.commands.execute.store[type]
21
21
  this.variable = sandstoneCore.pack.Variable(undefined, 'condition')
22
22
 
23
- // Snapshot before/after so commands the callback commits land in `preNodes` instead of
24
- // staying on the user MCFunction body, where they'd be stranded when visitor extraction
25
- // moves the surrounding condition chain elsewhere.
26
- const mcFunction = sandstoneCore.getCurrentMCFunctionOrThrow()
27
- const before = mcFunction.body.length
28
23
  command(store(this.variable))
29
- const after = mcFunction.body.length
30
- this.preNodes = mcFunction.body.splice(before, after - before)
31
24
  }
32
25
 
33
26
  getCondition(): unknown[] {
@@ -18,15 +18,6 @@ export type GenericConditionType = {
18
18
  }
19
19
 
20
20
  export abstract class ConditionNode extends Node {
21
- /**
22
- * Optional commands that must run before this condition's predicate is evaluated.
23
- * Conditions that emit side-effect commands at construction time (e.g. `data.equals`
24
- * building an `execute store result ...`) capture them here so the visitor pass can
25
- * re-emit them at the correct location — inline before the IfNode, or inside the
26
- * child MCFunction when AND/OR extracts. Pure predicates leave it unset.
27
- */
28
- preNodes?: Node[]
29
-
30
21
  abstract getValue: (negated?: boolean) => string
31
22
  }
32
23
 
@@ -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,5 +1,5 @@
1
1
  import type { NBTObject } from 'sandstone/arguments/nbt'
2
- import type { DataPointPickClass, Node, SandstoneCore } from 'sandstone/core'
2
+ import type { DataPointPickClass, SandstoneCore } from 'sandstone/core'
3
3
  import type { DataPointClass, Score } from 'sandstone/variables'
4
4
  import { SingleConditionNode } from '../condition'
5
5
 
@@ -29,19 +29,11 @@ export class DataPointEqualsConditionNode extends SingleConditionNode {
29
29
  const { DataVariable, Variable, commands } = sandstoneCore.pack
30
30
  const { execute } = commands
31
31
 
32
- // Snapshot the user MCFunction body length before/after the entire side-effecting
33
- // sequence — both the `data modify ... set from <source>` emitted by DataVariable (which
34
- // copies the source into the anonymous storage) AND the `execute store result ... set
35
- // value` written by `execute.store.result().run()`. They belong together: the first
36
- // loads the data, the second overwrites it with `value`, and the subsequent
37
- // `if score matches 0..` only makes sense after both have run.
38
- const mcFunction = sandstoneCore.getCurrentMCFunctionOrThrow()
39
- const before = mcFunction.body.length
40
32
  const anon = DataVariable(this.dataPoint)
33
+
41
34
  this.conditional = Variable()
35
+
42
36
  execute.store.result(this.conditional).run(() => anon.set(this.value as unknown as DataPointClass))
43
- const after = mcFunction.body.length
44
- this.preNodes = mcFunction.body.splice(before, after - before)
45
37
  }
46
38
 
47
39
  getValue = (negated?: boolean) =>
@@ -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
@@ -465,12 +469,11 @@ export class SandstonePack {
465
469
  }
466
470
 
467
471
  setupLantern = () => {
468
- const loadStatus = this.Objective.create('load.status', 'dummy', undefined, { useDefaultNamespace: false, alreadyExists: true })
472
+ const loadStatus = this.Objective.create('load.status', 'dummy', undefined, { useDefaultNamespace: false })
469
473
 
470
474
  const privateInit = this.Tag('function', 'load:_private/init', [
471
475
  this.MCFunction('load:_private/init', () => {
472
476
  this.commands.comment('Reset scoreboards so packs can set values accurate for current load.')
473
- this.commands.scoreboard.objectives.add(loadStatus.name, 'dummy')
474
477
  loadStatus.reset()
475
478
  }),
476
479
  ])
@@ -1122,6 +1125,15 @@ export class SandstonePack {
1122
1125
  ...options,
1123
1126
  })
1124
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
+
1125
1137
  ItemModifier = (name: string, itemModifier: ItemModifierClassArguments['json'], options?: Omit<Partial<ItemModifierClassArguments>, 'json'>) =>
1126
1138
  new ItemModifierClass(this.core, name, {
1127
1139
  json: itemModifier,
@@ -1162,6 +1174,15 @@ export class SandstonePack {
1162
1174
  ...options,
1163
1175
  })
1164
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
+
1165
1186
  SulfurCubeArchetype = (name: string, sulfurCubeArchetype: SulfurCubeArchetypeClassArguments['json'], options?: Omit<Partial<SulfurCubeArchetypeClassArguments>, 'json'>) =>
1166
1187
  new SulfurCubeArchetypeClass(this.core, name, {
1167
1188
  json: sulfurCubeArchetype,
@@ -1356,7 +1377,7 @@ export class SandstonePack {
1356
1377
  json,
1357
1378
  creator: 'user',
1358
1379
  addToSandstoneCore: true,
1359
- onConflict: conflictDefaults('block_definition') as BlockStateDefinitionArguments<JSON>['onConflict'],
1380
+ onConflict: conflictDefaults('blockstate') as BlockStateDefinitionArguments<JSON>['onConflict'],
1360
1381
  ...options,
1361
1382
  })
1362
1383
  }