sandstone 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/README.md +1 -1
  2. package/dist/_internal/index.d.ts +91 -16
  3. package/dist/_internal/index.js +1961 -306
  4. package/dist/_internal/index.js.map +1 -1
  5. package/dist/_internal/types/arguments/generated/_builtin/block_state_keys.d.ts +85 -1
  6. package/dist/_internal/types/arguments/generated/_builtin/block_states.d.ts +181 -1
  7. package/dist/_internal/types/arguments/generated/_dispatcher/block.d.ts +57 -21
  8. package/dist/_internal/types/arguments/generated/_dispatcher/block_entity.d.ts +5 -1
  9. package/dist/_internal/types/arguments/generated/_dispatcher/data_component_existence_predicate.d.ts +19 -0
  10. package/dist/_internal/types/arguments/generated/_dispatcher/resource.d.ts +24 -1
  11. package/dist/_internal/types/arguments/generated/_registry/advancements.d.ts +1 -1
  12. package/dist/_internal/types/arguments/generated/_registry/atlases.d.ts +1 -1
  13. package/dist/_internal/types/arguments/generated/_registry/attributes.d.ts +1 -1
  14. package/dist/_internal/types/arguments/generated/_registry/block_definitions.d.ts +1 -1
  15. package/dist/_internal/types/arguments/generated/_registry/block_entity_types.d.ts +1 -1
  16. package/dist/_internal/types/arguments/generated/_registry/block_predicate_types.d.ts +1 -1
  17. package/dist/_internal/types/arguments/generated/_registry/block_types.d.ts +1 -1
  18. package/dist/_internal/types/arguments/generated/_registry/blocks.d.ts +1 -1
  19. package/dist/_internal/types/arguments/generated/_registry/cat_sound_variants.d.ts +4 -0
  20. package/dist/_internal/types/arguments/generated/_registry/chicken_sound_variants.d.ts +4 -0
  21. package/dist/_internal/types/arguments/generated/_registry/chunk_statuses.d.ts +1 -1
  22. package/dist/_internal/types/arguments/generated/_registry/command_argument_types.d.ts +1 -1
  23. package/dist/_internal/types/arguments/generated/_registry/cow_sound_variants.d.ts +4 -0
  24. package/dist/_internal/types/arguments/generated/_registry/damage_types.d.ts +1 -1
  25. package/dist/_internal/types/arguments/generated/_registry/data_component_types.d.ts +1 -1
  26. package/dist/_internal/types/arguments/generated/_registry/entity_sub_predicate_types.d.ts +1 -1
  27. package/dist/_internal/types/arguments/generated/_registry/entity_types.d.ts +1 -1
  28. package/dist/_internal/types/arguments/generated/_registry/game_events.d.ts +1 -1
  29. package/dist/_internal/types/arguments/generated/_registry/game_rules.d.ts +1 -1
  30. package/dist/_internal/types/arguments/generated/_registry/item_definitions.d.ts +1 -1
  31. package/dist/_internal/types/arguments/generated/_registry/items.d.ts +1 -1
  32. package/dist/_internal/types/arguments/generated/_registry/jukebox_songs.d.ts +1 -1
  33. package/dist/_internal/types/arguments/generated/_registry/langs.d.ts +1 -1
  34. package/dist/_internal/types/arguments/generated/_registry/loot_pool_entry_types.d.ts +1 -1
  35. package/dist/_internal/types/arguments/generated/_registry/loot_tables.d.ts +1 -1
  36. package/dist/_internal/types/arguments/generated/_registry/models.d.ts +1 -1
  37. package/dist/_internal/types/arguments/generated/_registry/particle_types.d.ts +1 -1
  38. package/dist/_internal/types/arguments/generated/_registry/pig_sound_variants.d.ts +4 -0
  39. package/dist/_internal/types/arguments/generated/_registry/recipes.d.ts +1 -1
  40. package/dist/_internal/types/arguments/generated/_registry/sound_events.d.ts +1 -1
  41. package/dist/_internal/types/arguments/generated/_registry/sounds.d.ts +1 -1
  42. package/dist/_internal/types/arguments/generated/_registry/structures.d.ts +1 -1
  43. package/dist/_internal/types/arguments/generated/_registry/sulfur_cube_archetypes.d.ts +4 -0
  44. package/dist/_internal/types/arguments/generated/_registry/tag_blocks.d.ts +1 -1
  45. package/dist/_internal/types/arguments/generated/_registry/tag_damage_types.d.ts +1 -1
  46. package/dist/_internal/types/arguments/generated/_registry/tag_entity_types.d.ts +1 -1
  47. package/dist/_internal/types/arguments/generated/_registry/tag_items.d.ts +1 -1
  48. package/dist/_internal/types/arguments/generated/_registry/test_environment_definition_types.d.ts +1 -1
  49. package/dist/_internal/types/arguments/generated/_registry/textures.d.ts +1 -1
  50. package/dist/_internal/types/arguments/generated/_registry/translation_keys.d.ts +1 -1
  51. package/dist/_internal/types/arguments/generated/_registry/trigger_types.d.ts +1 -1
  52. package/dist/_internal/types/arguments/generated/_registry/trim_patterns.d.ts +1 -1
  53. package/dist/_internal/types/arguments/generated/_registry/villager_trades.d.ts +1 -1
  54. package/dist/_internal/types/arguments/generated/_registry/wolf_sound_variants.d.ts +1 -1
  55. package/dist/_internal/types/arguments/generated/_registry/wolf_variants.d.ts +1 -1
  56. package/dist/_internal/types/arguments/generated/_registry/worldgen_biomes.d.ts +1 -1
  57. package/dist/_internal/types/arguments/generated/_registry/worldgen_configured_carvers.d.ts +1 -1
  58. package/dist/_internal/types/arguments/generated/_registry/worldgen_configured_features.d.ts +1 -1
  59. package/dist/_internal/types/arguments/generated/_registry/worldgen_density_function_types.d.ts +1 -1
  60. package/dist/_internal/types/arguments/generated/_registry/worldgen_features.d.ts +1 -1
  61. package/dist/_internal/types/arguments/generated/_registry/worldgen_noises.d.ts +1 -1
  62. package/dist/_internal/types/arguments/generated/_registry/worldgen_placed_features.d.ts +1 -1
  63. package/dist/_internal/types/arguments/generated/_registry/worldgen_world_presets.d.ts +1 -1
  64. package/dist/_internal/types/arguments/generated/assets/atlas.d.ts +11 -2
  65. package/dist/_internal/types/arguments/generated/assets/block_state_definition.d.ts +25 -0
  66. package/dist/_internal/types/arguments/generated/assets/credits.d.ts +53 -0
  67. package/dist/_internal/types/arguments/generated/assets/equipment.d.ts +4 -5
  68. package/dist/_internal/types/arguments/generated/assets/item_definition.d.ts +29 -31
  69. package/dist/_internal/types/arguments/generated/assets/model.d.ts +126 -0
  70. package/dist/_internal/types/arguments/generated/assets/shader/program.d.ts +3 -0
  71. package/dist/_internal/types/arguments/generated/assets/sounds.d.ts +1 -1
  72. package/dist/_internal/types/arguments/generated/assets/texture_meta.d.ts +168 -28
  73. package/dist/_internal/types/arguments/generated/data/advancement/predicate.d.ts +170 -56
  74. package/dist/_internal/types/arguments/generated/data/advancement/trigger.d.ts +18 -0
  75. package/dist/_internal/types/arguments/generated/data/advancement.d.ts +7 -4
  76. package/dist/_internal/types/arguments/generated/data/chat_type.d.ts +7 -2
  77. package/dist/_internal/types/arguments/generated/data/decorated_pot_pattern.d.ts +8 -0
  78. package/dist/_internal/types/arguments/generated/data/dialog/input.d.ts +21 -0
  79. package/dist/_internal/types/arguments/generated/data/dialog.d.ts +5 -5
  80. package/dist/_internal/types/arguments/generated/data/enchantment/effect_component.d.ts +25 -25
  81. package/dist/_internal/types/arguments/generated/data/gametest/test_environment.d.ts +19 -1
  82. package/dist/_internal/types/arguments/generated/data/gametest.d.ts +1 -1
  83. package/dist/_internal/types/arguments/generated/data/item_modifier.d.ts +2 -1
  84. package/dist/_internal/types/arguments/generated/data/loot/condition.d.ts +84 -86
  85. package/dist/_internal/types/arguments/generated/data/loot/function.d.ts +261 -232
  86. package/dist/_internal/types/arguments/generated/data/loot.d.ts +10 -13
  87. package/dist/_internal/types/arguments/generated/data/predicate.d.ts +2 -1
  88. package/dist/_internal/types/arguments/generated/data/recipe.d.ts +58 -1
  89. package/dist/_internal/types/arguments/generated/data/slot_source.d.ts +91 -0
  90. package/dist/_internal/types/arguments/generated/data/structure.d.ts +59 -0
  91. package/dist/_internal/types/arguments/generated/data/sulfur_cube_archetype.d.ts +84 -0
  92. package/dist/_internal/types/arguments/generated/data/trim.d.ts +7 -1
  93. package/dist/_internal/types/arguments/generated/data/util.d.ts +7 -0
  94. package/dist/_internal/types/arguments/generated/data/variants/painting.d.ts +2 -2
  95. package/dist/_internal/types/arguments/generated/data/villager_trade.d.ts +4 -4
  96. package/dist/_internal/types/arguments/generated/data/worldgen/biome.d.ts +18 -0
  97. package/dist/_internal/types/arguments/generated/data/worldgen/carver.d.ts +24 -0
  98. package/dist/_internal/types/arguments/generated/data/worldgen/density_function.d.ts +28 -2
  99. package/dist/_internal/types/arguments/generated/data/worldgen/dimension/biome_source.d.ts +4 -0
  100. package/dist/_internal/types/arguments/generated/data/worldgen/dimension.d.ts +2 -2
  101. package/dist/_internal/types/arguments/generated/data/worldgen/feature/block_predicate.d.ts +7 -1
  102. package/dist/_internal/types/arguments/generated/data/worldgen/feature/tree.d.ts +54 -6
  103. package/dist/_internal/types/arguments/generated/data/worldgen/feature.d.ts +285 -115
  104. package/dist/_internal/types/arguments/generated/data/worldgen/material_condition.d.ts +93 -0
  105. package/dist/_internal/types/arguments/generated/data/worldgen/material_rule.d.ts +35 -0
  106. package/dist/_internal/types/arguments/generated/data/worldgen/noise_settings.d.ts +6 -2
  107. package/dist/_internal/types/arguments/generated/data/worldgen/processor_list.d.ts +18 -2
  108. package/dist/_internal/types/arguments/generated/data/worldgen/structure.d.ts +72 -2
  109. package/dist/_internal/types/arguments/generated/data/worldgen/structure_set.d.ts +4 -4
  110. package/dist/_internal/types/arguments/generated/dispatcher.d.ts +5 -3
  111. package/dist/_internal/types/arguments/generated/pack.d.ts +7 -0
  112. package/dist/_internal/types/arguments/generated/registry-sets.d.ts +9 -4
  113. package/dist/_internal/types/arguments/generated/registry.d.ts +15 -5
  114. package/dist/_internal/types/arguments/generated/resource-paths.d.ts +15 -0
  115. package/dist/_internal/types/arguments/generated/resources.d.ts +13 -1
  116. package/dist/_internal/types/arguments/generated/util/effect.d.ts +105 -3
  117. package/dist/_internal/types/arguments/generated/util/particle.d.ts +72 -1
  118. package/dist/_internal/types/arguments/generated/util/slot.d.ts +1 -84
  119. package/dist/_internal/types/arguments/generated/util/text.d.ts +191 -1
  120. package/dist/_internal/types/arguments/generated/util.d.ts +1 -0
  121. package/dist/_internal/types/arguments/generated/world/block/decorated_pot.d.ts +3 -5
  122. package/dist/_internal/types/arguments/generated/world/block/furnace.d.ts +3 -0
  123. package/dist/_internal/types/arguments/generated/world/block/potent_sulfur.d.ts +10 -0
  124. package/dist/_internal/types/arguments/generated/world/block/test_instance_block.d.ts +46 -1
  125. package/dist/_internal/types/arguments/generated/world/block/vault.d.ts +59 -0
  126. package/dist/_internal/types/arguments/generated/world/component/block.d.ts +6 -0
  127. package/dist/_internal/types/arguments/generated/world/component/item.d.ts +21 -6
  128. package/dist/_internal/types/arguments/generated/world/component/predicate.d.ts +4 -1
  129. package/dist/_internal/types/arguments/generated/world/component.d.ts +2 -1
  130. package/dist/_internal/types/arguments/generated/world/entity/boat.d.ts +15 -2
  131. package/dist/_internal/types/arguments/generated/world/entity/display.d.ts +34 -0
  132. package/dist/_internal/types/arguments/generated/world/entity/mob/breedable/chicken.d.ts +1 -1
  133. package/dist/_internal/types/arguments/generated/world/entity/mob/breedable/cow.d.ts +1 -1
  134. package/dist/_internal/types/arguments/generated/world/entity/mob/breedable/saddled.d.ts +1 -1
  135. package/dist/_internal/types/arguments/generated/world/entity/mob/breedable/tamable.d.ts +1 -1
  136. package/dist/_internal/types/arguments/generated/world/entity/mob/copper_golem.d.ts +3 -3
  137. package/dist/_internal/types/arguments/generated/world/entity/mob/happy_ghast.d.ts +5 -0
  138. package/dist/_internal/types/arguments/generated/world/entity/mob/player.d.ts +21 -0
  139. package/dist/_internal/types/arguments/generated/world/entity/mob/shulker.d.ts +2 -2
  140. package/dist/_internal/types/arguments/generated/world/entity/mob/slime.d.ts +20 -2
  141. package/dist/_internal/types/arguments/generated/world/entity/mob.d.ts +50 -7
  142. package/dist/_internal/types/arguments/generated/world/item/map.d.ts +12 -0
  143. package/dist/_internal/types/arguments/generated/world/item/shield.d.ts +26 -0
  144. package/dist/_internal/types/core/resources/datapack/decoratedPotPattern.d.ts +24 -0
  145. package/dist/_internal/types/core/resources/datapack/index.d.ts +3 -0
  146. package/dist/_internal/types/core/resources/datapack/slotSource.d.ts +24 -0
  147. package/dist/_internal/types/core/resources/datapack/sulfurCubeArchetype.d.ts +24 -0
  148. package/dist/_internal/types/pack/pack.d.ts +5 -2
  149. package/dist/_internal/types/variables/ResolveNBT.d.ts +1 -1
  150. package/dist/browser/sandstone.esm.js +1961 -306
  151. package/dist/browser/sandstone.esm.js.map +1 -1
  152. package/dist/exports/arguments/index.d.ts +1 -1
  153. package/dist/exports/arguments/index.js +1 -1
  154. package/dist/exports/core/index.d.ts +1 -1
  155. package/dist/exports/core/index.js +1 -1
  156. package/dist/exports/index.d.ts +1 -1
  157. package/dist/exports/index.js +1 -1
  158. package/package.json +2 -2
  159. package/src/arguments/generated/_builtin/block_state_keys.ts +112 -0
  160. package/src/arguments/generated/_builtin/block_states.ts +208 -0
  161. package/src/arguments/generated/_dispatcher/block.ts +68 -20
  162. package/src/arguments/generated/_dispatcher/block_entity.ts +5 -0
  163. package/src/arguments/generated/_dispatcher/data_component_existence_predicate.ts +34 -0
  164. package/src/arguments/generated/_dispatcher/resource.ts +29 -0
  165. package/src/arguments/generated/_registry/advancements.ts +71 -0
  166. package/src/arguments/generated/_registry/atlases.ts +0 -2
  167. package/src/arguments/generated/_registry/attributes.ts +5 -0
  168. package/src/arguments/generated/_registry/block_definitions.ts +28 -0
  169. package/src/arguments/generated/_registry/block_entity_types.ts +1 -1
  170. package/src/arguments/generated/_registry/block_predicate_types.ts +1 -0
  171. package/src/arguments/generated/_registry/block_types.ts +3 -1
  172. package/src/arguments/generated/_registry/blocks.ts +28 -0
  173. package/src/arguments/generated/_registry/cat_sound_variants.ts +11 -0
  174. package/src/arguments/generated/_registry/chicken_sound_variants.ts +11 -0
  175. package/src/arguments/generated/_registry/command_argument_types.ts +1 -1
  176. package/src/arguments/generated/_registry/cow_sound_variants.ts +11 -0
  177. package/src/arguments/generated/_registry/damage_types.ts +1 -0
  178. package/src/arguments/generated/_registry/data_component_types.ts +1 -0
  179. package/src/arguments/generated/_registry/entity_sub_predicate_types.ts +25 -6
  180. package/src/arguments/generated/_registry/entity_types.ts +1 -0
  181. package/src/arguments/generated/_registry/game_events.ts +1 -0
  182. package/src/arguments/generated/_registry/item_definitions.ts +31 -0
  183. package/src/arguments/generated/_registry/items.ts +31 -0
  184. package/src/arguments/generated/_registry/jukebox_songs.ts +1 -0
  185. package/src/arguments/generated/_registry/langs.ts +5 -0
  186. package/src/arguments/generated/_registry/loot_tables.ts +29 -0
  187. package/src/arguments/generated/_registry/models.ts +294 -42
  188. package/src/arguments/generated/_registry/particle_types.ts +8 -0
  189. package/src/arguments/generated/_registry/pig_sound_variants.ts +12 -0
  190. package/src/arguments/generated/_registry/recipes.ts +70 -0
  191. package/src/arguments/generated/_registry/sound_events.ts +66 -0
  192. package/src/arguments/generated/_registry/sounds.ts +307 -0
  193. package/src/arguments/generated/_registry/structures.ts +10 -0
  194. package/src/arguments/generated/_registry/sulfur_cube_archetypes.ts +21 -0
  195. package/src/arguments/generated/_registry/tag_blocks.ts +18 -1
  196. package/src/arguments/generated/_registry/tag_damage_types.ts +1 -0
  197. package/src/arguments/generated/_registry/tag_entity_types.ts +1 -0
  198. package/src/arguments/generated/_registry/tag_items.ts +17 -0
  199. package/src/arguments/generated/_registry/test_environment_definition_types.ts +1 -0
  200. package/src/arguments/generated/_registry/textures.ts +233 -42
  201. package/src/arguments/generated/_registry/translation_keys.ts +316 -72
  202. package/src/arguments/generated/_registry/villager_trades.ts +1 -0
  203. package/src/arguments/generated/_registry/worldgen_biomes.ts +1 -0
  204. package/src/arguments/generated/_registry/worldgen_configured_features.ts +5 -0
  205. package/src/arguments/generated/_registry/worldgen_density_function_types.ts +1 -1
  206. package/src/arguments/generated/_registry/worldgen_features.ts +5 -2
  207. package/src/arguments/generated/_registry/worldgen_noises.ts +1 -0
  208. package/src/arguments/generated/_registry/worldgen_placed_features.ts +4 -0
  209. package/src/arguments/generated/_registry/worldgen_world_presets.ts +1 -0
  210. package/src/arguments/generated/assets/atlas.ts +14 -2
  211. package/src/arguments/generated/assets/block_state_definition.ts +30 -0
  212. package/src/arguments/generated/assets/credits.ts +56 -0
  213. package/src/arguments/generated/assets/equipment.ts +4 -5
  214. package/src/arguments/generated/assets/item_definition.ts +31 -31
  215. package/src/arguments/generated/assets/model.ts +133 -0
  216. package/src/arguments/generated/assets/shader/program.ts +4 -0
  217. package/src/arguments/generated/assets/sounds.ts +1 -1
  218. package/src/arguments/generated/assets/texture_meta.ts +174 -28
  219. package/src/arguments/generated/data/advancement/predicate.ts +218 -58
  220. package/src/arguments/generated/data/advancement/trigger.ts +20 -0
  221. package/src/arguments/generated/data/advancement.ts +8 -4
  222. package/src/arguments/generated/data/chat_type.ts +8 -2
  223. package/src/arguments/generated/data/decorated_pot_pattern.ts +8 -0
  224. package/src/arguments/generated/data/dialog/input.ts +22 -0
  225. package/src/arguments/generated/data/dialog.ts +5 -5
  226. package/src/arguments/generated/data/enchantment/effect_component.ts +25 -25
  227. package/src/arguments/generated/data/gametest/test_environment.ts +24 -0
  228. package/src/arguments/generated/data/gametest.ts +1 -2
  229. package/src/arguments/generated/data/item_modifier.ts +3 -1
  230. package/src/arguments/generated/data/loot/condition.ts +129 -112
  231. package/src/arguments/generated/data/loot/function.ts +362 -280
  232. package/src/arguments/generated/data/loot.ts +14 -13
  233. package/src/arguments/generated/data/predicate.ts +3 -1
  234. package/src/arguments/generated/data/recipe.ts +66 -1
  235. package/src/arguments/generated/data/slot_source.ts +119 -0
  236. package/src/arguments/generated/data/structure.ts +63 -0
  237. package/src/arguments/generated/data/sulfur_cube_archetype.ts +92 -0
  238. package/src/arguments/generated/data/trim.ts +9 -1
  239. package/src/arguments/generated/data/util.ts +8 -0
  240. package/src/arguments/generated/data/variants/painting.ts +2 -2
  241. package/src/arguments/generated/data/villager_trade.ts +4 -4
  242. package/src/arguments/generated/data/worldgen/biome.ts +24 -0
  243. package/src/arguments/generated/data/worldgen/carver.ts +28 -0
  244. package/src/arguments/generated/data/worldgen/density_function.ts +29 -1
  245. package/src/arguments/generated/data/worldgen/dimension/biome_source.ts +5 -0
  246. package/src/arguments/generated/data/worldgen/dimension.ts +4 -2
  247. package/src/arguments/generated/data/worldgen/feature/block_predicate.ts +8 -0
  248. package/src/arguments/generated/data/worldgen/feature/tree.ts +58 -4
  249. package/src/arguments/generated/data/worldgen/feature.ts +320 -124
  250. package/src/arguments/generated/data/worldgen/material_condition.ts +119 -0
  251. package/src/arguments/generated/data/worldgen/material_rule.ts +52 -0
  252. package/src/arguments/generated/data/worldgen/noise_settings.ts +7 -2
  253. package/src/arguments/generated/data/worldgen/processor_list.ts +24 -1
  254. package/src/arguments/generated/data/worldgen/structure.ts +79 -2
  255. package/src/arguments/generated/data/worldgen/structure_set.ts +13 -4
  256. package/src/arguments/generated/dispatcher.ts +11 -4
  257. package/src/arguments/generated/pack.ts +8 -0
  258. package/src/arguments/generated/registry-sets.ts +18 -8
  259. package/src/arguments/generated/registry.ts +27 -4
  260. package/src/arguments/generated/resource-paths.ts +3 -0
  261. package/src/arguments/generated/resources.ts +6 -0
  262. package/src/arguments/generated/util/effect.ts +107 -3
  263. package/src/arguments/generated/util/particle.ts +80 -0
  264. package/src/arguments/generated/util/slot.ts +1 -103
  265. package/src/arguments/generated/util/text.ts +207 -0
  266. package/src/arguments/generated/util.ts +2 -0
  267. package/src/arguments/generated/world/block/decorated_pot.ts +3 -5
  268. package/src/arguments/generated/world/block/furnace.ts +4 -0
  269. package/src/arguments/generated/world/block/potent_sulfur.ts +11 -0
  270. package/src/arguments/generated/world/block/test_instance_block.ts +48 -1
  271. package/src/arguments/generated/world/block/vault.ts +62 -0
  272. package/src/arguments/generated/world/component/block.ts +7 -0
  273. package/src/arguments/generated/world/component/item.ts +28 -5
  274. package/src/arguments/generated/world/component/predicate.ts +6 -0
  275. package/src/arguments/generated/world/component.ts +4 -1
  276. package/src/arguments/generated/world/entity/boat.ts +18 -1
  277. package/src/arguments/generated/world/entity/display.ts +35 -0
  278. package/src/arguments/generated/world/entity/mob/breedable/chicken.ts +1 -1
  279. package/src/arguments/generated/world/entity/mob/breedable/cow.ts +1 -1
  280. package/src/arguments/generated/world/entity/mob/breedable/saddled.ts +1 -1
  281. package/src/arguments/generated/world/entity/mob/breedable/tamable.ts +1 -1
  282. package/src/arguments/generated/world/entity/mob/copper_golem.ts +3 -3
  283. package/src/arguments/generated/world/entity/mob/happy_ghast.ts +6 -0
  284. package/src/arguments/generated/world/entity/mob/player.ts +21 -0
  285. package/src/arguments/generated/world/entity/mob/shulker.ts +2 -2
  286. package/src/arguments/generated/world/entity/mob/slime.ts +22 -2
  287. package/src/arguments/generated/world/entity/mob.ts +53 -7
  288. package/src/arguments/generated/world/item/map.ts +14 -0
  289. package/src/arguments/generated/world/item/shield.ts +27 -0
  290. package/src/core/resources/datapack/decoratedPotPattern.ts +47 -0
  291. package/src/core/resources/datapack/index.ts +3 -0
  292. package/src/core/resources/datapack/slotSource.ts +47 -0
  293. package/src/core/resources/datapack/sulfurCubeArchetype.ts +47 -0
  294. package/src/pack/pack.ts +33 -0
  295. package/src/sandstone.ts +24 -0
@@ -64,6 +64,7 @@ import type { Endermite } from 'sandstone/arguments/generated/world/entity/mob/e
64
64
  import type { Fish, Pufferfish, Salmon, TropicalFish } from 'sandstone/arguments/generated/world/entity/mob/fish.ts'
65
65
  import type { Ghast } from 'sandstone/arguments/generated/world/entity/mob/ghast.ts'
66
66
  import type { GlowSquid } from 'sandstone/arguments/generated/world/entity/mob/glow_squid.ts'
67
+ import type { HappyGhast } from 'sandstone/arguments/generated/world/entity/mob/happy_ghast.ts'
67
68
  import type { IronGolem } from 'sandstone/arguments/generated/world/entity/mob/iron_golem.ts'
68
69
  import type { Mannequin } from 'sandstone/arguments/generated/world/entity/mob/mannequin.ts'
69
70
  import type { MobBase, Squid } from 'sandstone/arguments/generated/world/entity/mob.ts'
@@ -79,7 +80,7 @@ import type {
79
80
  } from 'sandstone/arguments/generated/world/entity/mob/raider.ts'
80
81
  import type { Shulker } from 'sandstone/arguments/generated/world/entity/mob/shulker.ts'
81
82
  import type { Skeleton } from 'sandstone/arguments/generated/world/entity/mob/skeleton.ts'
82
- import type { Slime } from 'sandstone/arguments/generated/world/entity/mob/slime.ts'
83
+ import type { Slime, SulfurCube } from 'sandstone/arguments/generated/world/entity/mob/slime.ts'
83
84
  import type { SnowGolem } from 'sandstone/arguments/generated/world/entity/mob/snow_golem.ts'
84
85
  import type { Tadpole } from 'sandstone/arguments/generated/world/entity/mob/tadpole.ts'
85
86
  import type { Vex } from 'sandstone/arguments/generated/world/entity/mob/vex.ts'
@@ -276,6 +277,8 @@ type EntityDispatcherMap = {
276
277
  'minecraft:goat': EntityGoat,
277
278
  'guardian': EntityGuardian,
278
279
  'minecraft:guardian': EntityGuardian,
280
+ 'happy_ghast': EntityHappyGhast,
281
+ 'minecraft:happy_ghast': EntityHappyGhast,
279
282
  'hoglin': EntityHoglin,
280
283
  'minecraft:hoglin': EntityHoglin,
281
284
  'hopper_minecart': EntityHopperMinecart,
@@ -360,6 +363,10 @@ type EntityDispatcherMap = {
360
363
  'minecraft:player': EntityPlayer,
361
364
  'polar_bear': EntityPolarBear,
362
365
  'minecraft:polar_bear': EntityPolarBear,
366
+ 'poplar_boat': EntityPoplarBoat,
367
+ 'minecraft:poplar_boat': EntityPoplarBoat,
368
+ 'popolar_chest_boat': EntityPopolarChestBoat,
369
+ 'minecraft:popolar_chest_boat': EntityPopolarChestBoat,
363
370
  'potion': EntityPotion,
364
371
  'minecraft:potion': EntityPotion,
365
372
  'pufferfish': EntityPufferfish,
@@ -410,6 +417,8 @@ type EntityDispatcherMap = {
410
417
  'minecraft:stray': EntityStray,
411
418
  'strider': EntityStrider,
412
419
  'minecraft:strider': EntityStrider,
420
+ 'sulfur_cube': EntitySulfurCube,
421
+ 'minecraft:sulfur_cube': EntitySulfurCube,
413
422
  'tadpole': EntityTadpole,
414
423
  'minecraft:tadpole': EntityTadpole,
415
424
  'text_display': EntityTextDisplay,
@@ -529,6 +538,7 @@ type EntityFallback = (
529
538
  | EntityGlowSquid
530
539
  | EntityGoat
531
540
  | EntityGuardian
541
+ | EntityHappyGhast
532
542
  | EntityHoglin
533
543
  | EntityHopperMinecart
534
544
  | EntityHorse
@@ -571,6 +581,8 @@ type EntityFallback = (
571
581
  | EntityPillager
572
582
  | EntityPlayer
573
583
  | EntityPolarBear
584
+ | EntityPoplarBoat
585
+ | EntityPopolarChestBoat
574
586
  | EntityPotion
575
587
  | EntityPufferfish
576
588
  | EntityRabbit
@@ -596,6 +608,7 @@ type EntityFallback = (
596
608
  | EntitySquid
597
609
  | EntityStray
598
610
  | EntityStrider
611
+ | EntitySulfurCube
599
612
  | EntityTadpole
600
613
  | EntityTextDisplay
601
614
  | EntityTnt
@@ -687,6 +700,7 @@ type EntityGlowItemFrame = ItemFrame
687
700
  type EntityGlowSquid = GlowSquid
688
701
  type EntityGoat = Goat
689
702
  type EntityGuardian = MobBase
703
+ type EntityHappyGhast = HappyGhast
690
704
  type EntityHoglin = Hoglin
691
705
  type EntityHopperMinecart = HopperMinecart
692
706
  type EntityHorse = Horse
@@ -729,6 +743,8 @@ type EntityPiglinBrute = PiglinBase
729
743
  type EntityPillager = Pillager
730
744
  type EntityPlayer = Player
731
745
  type EntityPolarBear = PolarBear
746
+ type EntityPoplarBoat = Boat
747
+ type EntityPopolarChestBoat = ChestBoat
732
748
  type EntityPotion = Potion
733
749
  type EntityPufferfish = Pufferfish
734
750
  type EntityRabbit = Rabbit
@@ -754,6 +770,7 @@ type EntitySpruceChestBoat = ChestBoat
754
770
  type EntitySquid = Squid
755
771
  type EntityStray = MobBase
756
772
  type EntityStrider = Saddled
773
+ type EntitySulfurCube = SulfurCube
757
774
  type EntityTadpole = Tadpole
758
775
  type EntityTextDisplay = TextDisplay
759
776
  type EntityTnt = Tnt
@@ -58,6 +58,41 @@ export type Brightness = {
58
58
  }>,
59
59
  }
60
60
 
61
+ export type DecomposedTransformation = {
62
+ /**
63
+ * Translation in [x, y, z].
64
+ *
65
+ * Value:
66
+ * List length range: 3
67
+ */
68
+ translation: NBTList<NBTFloat, {
69
+ leftExclusive: false,
70
+ rightExclusive: false,
71
+ min: 3,
72
+ max: 3,
73
+ }>,
74
+ /**
75
+ * Using this rotation is enough for most transformations.
76
+ */
77
+ left_rotation: Rotation,
78
+ /**
79
+ * For more complex transformations. Applied **before** scaling.
80
+ */
81
+ right_rotation: Rotation,
82
+ /**
83
+ * Scale in [x, y, z].
84
+ *
85
+ * Value:
86
+ * List length range: 3
87
+ */
88
+ scale: NBTList<NBTFloat, {
89
+ leftExclusive: false,
90
+ rightExclusive: false,
91
+ min: 3,
92
+ max: 3,
93
+ }>,
94
+ }
95
+
61
96
  export type DisplayBase = (EntityBase & {
62
97
  /**
63
98
  * Transformation applied to model (after normal entity orientation). Defaults to identity. Interpolated.
@@ -13,5 +13,5 @@ export type Chicken = (Breedable & {
13
13
  */
14
14
  EggLayTime?: NBTInt,
15
15
  variant?: (Registry['minecraft:chicken_variant'] | VariantClass<'chicken'>),
16
- sound_variant?: (`${string}:${string}` | VariantClass<'chicken_sound'>),
16
+ sound_variant?: (Registry['minecraft:chicken_sound_variant'] | VariantClass<'chicken_sound'>),
17
17
  })
@@ -4,5 +4,5 @@ import type { VariantClass } from 'sandstone'
4
4
 
5
5
  export type Cow = (Breedable & {
6
6
  variant?: (Registry['minecraft:cow_variant'] | VariantClass<'cow'>),
7
- sound_variant?: (`${string}:${string}` | VariantClass<'cow_sound'>),
7
+ sound_variant?: (Registry['minecraft:cow_sound_variant'] | VariantClass<'cow_sound'>),
8
8
  })
@@ -4,7 +4,7 @@ import type { VariantClass } from 'sandstone'
4
4
 
5
5
  export type Pig = (Saddled & {
6
6
  variant?: (Registry['minecraft:pig_variant'] | VariantClass<'pig'>),
7
- sound_variant?: (`${string}:${string}` | VariantClass<'pig_sound'>),
7
+ sound_variant?: (Registry['minecraft:pig_sound_variant'] | VariantClass<'pig_sound'>),
8
8
  })
9
9
 
10
10
  export type Saddled = Breedable
@@ -29,7 +29,7 @@ export type Cat = (Tamable & {
29
29
  */
30
30
  CollarColor?: DyeColorByte,
31
31
  variant?: (Registry['minecraft:cat_variant'] | VariantClass<'cat'>),
32
- sound_variant?: (`${string}:${string}` | VariantClass<'cat_sound'>),
32
+ sound_variant?: (Registry['minecraft:cat_sound_variant'] | VariantClass<'cat_sound'>),
33
33
  })
34
34
 
35
35
  export type CatType = (-1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10)
@@ -3,9 +3,9 @@ import type { NBTLong } from 'sandstone'
3
3
 
4
4
  export type CopperGolem = (MobBase & {
5
5
  /**
6
- * Gametime in ticks when the copper golem oxidizes
7
- * -2 represents "waxed"
8
- * -1 will be replaced with a random time between 504000 and 552000 ticks later
6
+ * Gametime in ticks when the copper golem oxidizes. \
7
+ * `-2` represents "waxed" \
8
+ * `-1` will be replaced with a random time between 504000 and 552000 ticks later
9
9
  *
10
10
  * Value:
11
11
  * Range: -2..
@@ -0,0 +1,6 @@
1
+ import type { AgeableMob, MobBase } from 'sandstone/arguments/generated/world/entity/mob.ts'
2
+ import type { NBTInt } from 'sandstone'
3
+
4
+ export type HappyGhast = (MobBase & AgeableMob & {
5
+ still_timeout?: NBTInt,
6
+ })
@@ -197,6 +197,16 @@ export type Player = (LivingEntity & {
197
197
  min: 3,
198
198
  max: 3,
199
199
  }>,
200
+ /**
201
+ * Value:
202
+ * Array length range: 3
203
+ */
204
+ raid_omen_position?: NBTIntArray<{
205
+ leftExclusive: false,
206
+ rightExclusive: false,
207
+ min: 3,
208
+ max: 3,
209
+ }>,
200
210
  /**
201
211
  * Entity that the player is riding.
202
212
  */
@@ -225,6 +235,17 @@ export type Player = (LivingEntity & {
225
235
  * Ender pearls thrown by this player.
226
236
  */
227
237
  ender_pearls?: Array<EnderPearl>,
238
+ /**
239
+ * Value:
240
+ * List length range: 3
241
+ */
242
+ last_explosion_impact_pos?: NBTList<(NBTDouble | number), {
243
+ leftExclusive: false,
244
+ rightExclusive: false,
245
+ min: 3,
246
+ max: 3,
247
+ }>,
248
+ spawn_extra_particles_on_fall?: boolean,
228
249
  CustomName?: never,
229
250
  CustomNameVisible?: never,
230
251
  })
@@ -1,4 +1,4 @@
1
- import type { DyeColorInt } from 'sandstone/arguments/generated/util/color.ts'
1
+ import type { DyeColorByte } from 'sandstone/arguments/generated/util/color.ts'
2
2
  import type { MobBase } from 'sandstone/arguments/generated/world/entity/mob.ts'
3
3
 
4
4
  export type AttachFace = (0 | 1 | 2 | 3 | 4 | 5)
@@ -31,7 +31,7 @@ export type Shulker = (MobBase & {
31
31
  *
32
32
  *
33
33
  */
34
- Color?: (DyeColorInt | ShulkerColor),
34
+ Color?: (DyeColorByte | ShulkerColor),
35
35
  })
36
36
 
37
37
  export type ShulkerColor = (16)
@@ -1,7 +1,7 @@
1
- import type { MobBase } from 'sandstone/arguments/generated/world/entity/mob.ts'
1
+ import type { AgeableMob, MobBase } from 'sandstone/arguments/generated/world/entity/mob.ts'
2
2
  import type { NBTInt } from 'sandstone'
3
3
 
4
- export type Slime = (MobBase & {
4
+ export type CubeMob = {
5
5
  /**
6
6
  * Value:
7
7
  * Range: 0..126
@@ -13,4 +13,24 @@ export type Slime = (MobBase & {
13
13
  * Whether it is on the ground.
14
14
  */
15
15
  wasOnGround?: boolean,
16
+ }
17
+
18
+ export type Slime = (MobBase & CubeMob)
19
+
20
+ export type SulfurCube = (MobBase & AgeableMob & CubeMob & {
21
+ /**
22
+ * Value:
23
+ * Range: 0..
24
+ */
25
+ pickup_timer?: NBTInt<{
26
+ min: 0,
27
+ }>,
28
+ from_bucket?: boolean,
29
+ /**
30
+ * `-1` represents "not ignited".
31
+ *
32
+ * Value:
33
+ * Range: -1..
34
+ */
35
+ fuse?: NBTInt<{}>,
16
36
  })
@@ -39,9 +39,17 @@ export type Attribute = {
39
39
  }
40
40
 
41
41
  export type AttributeModifier = {
42
- id?: `${string}:${string}`,
43
- amount?: (NBTDouble | number),
44
42
  /**
43
+ * The unique identifier of this attribute modifier.
44
+ */
45
+ id: `${string}:${string}`,
46
+ /**
47
+ * Change in the attribute.
48
+ */
49
+ amount: (NBTDouble | number),
50
+ /**
51
+ * The operation used for this modifier.
52
+ *
45
53
  * Value:
46
54
  *
47
55
  * - AddValue(`add_value`): Adds all of the modifiers' amounts to the current value of the attribute.
@@ -52,7 +60,7 @@ export type AttributeModifier = {
52
60
  * For every modifier, multiplies the current value of the attribute by `(1 + x)`,
53
61
  * where `x` is the amount of the particular modifier.
54
62
  */
55
- operation?: AttributeOperation,
63
+ operation: AttributeOperation,
56
64
  }
57
65
 
58
66
  export type BlockLeash = {
@@ -70,6 +78,10 @@ export type BlockLeash = {
70
78
  Z?: NBTInt,
71
79
  }
72
80
 
81
+ export type Brain = {
82
+ memories?: Memories,
83
+ }
84
+
73
85
  export type DropChances = ({
74
86
  [Key in Extract<EquipmentSlot, string>]?: NBTFloat<{
75
87
  leftExclusive: false,
@@ -106,6 +118,19 @@ export type FallDamageLogicData = ({
106
118
  }>,
107
119
  })
108
120
 
121
+ export type LeashOwner = {
122
+ /**
123
+ * Value:
124
+ * Array length range: 4
125
+ */
126
+ UUID?: NBTIntArray<{
127
+ leftExclusive: false,
128
+ rightExclusive: false,
129
+ min: 4,
130
+ max: 4,
131
+ }>,
132
+ }
133
+
109
134
  export type LivingEntity = (EntityBase & {
110
135
  Health?: NBTFloat,
111
136
  /**
@@ -116,10 +141,6 @@ export type LivingEntity = (EntityBase & {
116
141
  * Timer since it has been damaged. Counts down to zero.
117
142
  */
118
143
  HurtTime?: NBTShort,
119
- /**
120
- * Ticks since it was last damaged, from its creation.
121
- */
122
- HurtByTimestamp?: NBTInt,
123
144
  /**
124
145
  * Timer since it was marked as dead. Counts down to zero.
125
146
  */
@@ -277,6 +298,31 @@ export type MobBase = (LivingEntity & {
277
298
  }>,
278
299
  })
279
300
 
301
+ export type ModernAttributeModifier = {
302
+ /**
303
+ * The unique identifier of this attribute modifier.
304
+ */
305
+ id: `${string}:${string}`,
306
+ /**
307
+ * Change in the attribute.
308
+ */
309
+ amount: (NBTDouble | number),
310
+ /**
311
+ * The operation used for this modifier.
312
+ *
313
+ * Value:
314
+ *
315
+ * - AddValue(`add_value`): Adds all of the modifiers' amounts to the current value of the attribute.
316
+ * - AddMultipliedBase(`add_multiplied_base`):
317
+ * Multiplies the current value of the attribute by `(1 + x)`,
318
+ * where `x` is the sum of the modifiers' amounts.
319
+ * - AddMultipliedTotal(`add_multiplied_total`):
320
+ * For every modifier, multiplies the current value of the attribute by `(1 + x)`,
321
+ * where `x` is the amount of the particular modifier.
322
+ */
323
+ operation: AttributeOperation,
324
+ }
325
+
280
326
  export type NeutralMob = {
281
327
  /**
282
328
  * The time anger ends.
@@ -1,6 +1,13 @@
1
1
  import type { Display, ItemBase } from 'sandstone/arguments/generated/world/item.ts'
2
2
  import type { NBTDouble, NBTFloat, NBTInt } from 'sandstone'
3
3
 
4
+ export type ColorDisplay = (Display & {
5
+ /**
6
+ * Calculated as `RED << 16 | GREEN << 8 | BLUE`. Each of these fields must be between 0 and 255, inclusive.
7
+ */
8
+ MapColor?: NBTInt,
9
+ })
10
+
4
11
  export type Decoration = {
5
12
  /**
6
13
  * Decoration type.
@@ -116,3 +123,10 @@ export type IconByteId = (
116
123
  | 24
117
124
  | 25
118
125
  | 26)
126
+
127
+ export type IdentifiedDecoration = (Decoration & {
128
+ /**
129
+ * An arbitrary unique string identifying the decoration.
130
+ */
131
+ id: string,
132
+ })
@@ -2,6 +2,33 @@ import type { DyeColorInt } from 'sandstone/arguments/generated/util/color.ts'
2
2
  import type { BannerPatternLayer } from 'sandstone/arguments/generated/world/block/banner.ts'
3
3
  import type { ItemBase } from 'sandstone/arguments/generated/world/item.ts'
4
4
 
5
+ export type BlockEntityTag = {
6
+ /**
7
+ * Base color.
8
+ *
9
+ * Value:
10
+ *
11
+ * - White(`0`)
12
+ * - Orange(`1`)
13
+ * - Magenta(`2`)
14
+ * - LightBlue(`3`)
15
+ * - Yellow(`4`)
16
+ * - Lime(`5`)
17
+ * - Pink(`6`)
18
+ * - Gray(`7`)
19
+ * - LightGray(`8`)
20
+ * - Cyan(`9`)
21
+ * - Purple(`10`)
22
+ * - Blue(`11`)
23
+ * - Brown(`12`)
24
+ * - Green(`13`)
25
+ * - Red(`14`)
26
+ * - Black(`15`)
27
+ */
28
+ Base?: DyeColorInt,
29
+ Patterns?: Array<BannerPatternLayer>,
30
+ }
31
+
5
32
  export type Shield = (ItemBase & {
6
33
  /**
7
34
  * Banner Data.
@@ -0,0 +1,47 @@
1
+ import { RESOURCE_PATHS, type SymbolResource } from 'sandstone/arguments'
2
+ import { ContainerNode } from '../../nodes'
3
+ import type { SandstoneCore } from '../../sandstoneCore'
4
+ import type { ResourceClassArguments, ResourceNode } from '../resource'
5
+ import { ResourceClass, jsonStringify } from '../resource'
6
+
7
+ /**
8
+ * A node representing a Minecraft decorated pot pattern.
9
+ */
10
+ export class DecoratedPotPatternNode extends ContainerNode implements ResourceNode<DecoratedPotPatternClass> {
11
+ constructor(
12
+ sandstoneCore: SandstoneCore,
13
+ public resource: DecoratedPotPatternClass,
14
+ ) {
15
+ super(sandstoneCore)
16
+ }
17
+
18
+ getValue = () => jsonStringify(this.resource.decoratedPotPatternJSON, this.resource._resourceType as keyof typeof RESOURCE_PATHS)
19
+ }
20
+
21
+ export type DecoratedPotPatternClassArguments = {
22
+ /**
23
+ * The decorated pot pattern's JSON.
24
+ */
25
+ json: SymbolResource[(typeof DecoratedPotPatternClass)['resourceType']]
26
+ } & ResourceClassArguments<'default'>
27
+
28
+ export class DecoratedPotPatternClass extends ResourceClass<DecoratedPotPatternNode> {
29
+ static readonly resourceType = 'decorated_pot_pattern' as const
30
+
31
+ public decoratedPotPatternJSON: NonNullable<DecoratedPotPatternClassArguments['json']>
32
+
33
+ constructor(sandstoneCore: SandstoneCore, name: string, args: DecoratedPotPatternClassArguments) {
34
+ super(
35
+ sandstoneCore,
36
+ { packType: sandstoneCore.pack.dataPack(), extension: 'json' },
37
+ DecoratedPotPatternNode,
38
+ DecoratedPotPatternClass.resourceType,
39
+ sandstoneCore.pack.resourceToPath(name, RESOURCE_PATHS[DecoratedPotPatternClass.resourceType].path),
40
+ args,
41
+ )
42
+
43
+ this.decoratedPotPatternJSON = args.json
44
+
45
+ this.handleConflicts()
46
+ }
47
+ }
@@ -2,6 +2,7 @@ export * from './advancement'
2
2
  export * from './bannerPattern'
3
3
  export * from './chatType'
4
4
  export * from './damageType'
5
+ export * from './decoratedPotPattern'
5
6
  export * from './dialog'
6
7
  export * from './enchantment'
7
8
  export * from './gametest'
@@ -12,7 +13,9 @@ export * from './lootTable'
12
13
  export * from './mcfunction'
13
14
  export * from './predicate'
14
15
  export * from './recipe'
16
+ export * from './slotSource'
15
17
  export * from './structure'
18
+ export * from './sulfurCubeArchetype'
16
19
  export * from './tag'
17
20
  export * from './timeline'
18
21
  export * from './trialSpawner'
@@ -0,0 +1,47 @@
1
+ import { RESOURCE_PATHS, type SymbolResource } from 'sandstone/arguments'
2
+ import { ContainerNode } from '../../nodes'
3
+ import type { SandstoneCore } from '../../sandstoneCore'
4
+ import type { ResourceClassArguments, ResourceNode } from '../resource'
5
+ import { ResourceClass, jsonStringify } from '../resource'
6
+
7
+ /**
8
+ * A node representing a Minecraft slot source.
9
+ */
10
+ export class SlotSourceNode extends ContainerNode implements ResourceNode<SlotSourceClass> {
11
+ constructor(
12
+ sandstoneCore: SandstoneCore,
13
+ public resource: SlotSourceClass,
14
+ ) {
15
+ super(sandstoneCore)
16
+ }
17
+
18
+ getValue = () => jsonStringify(this.resource.slotSourceJSON, this.resource._resourceType as keyof typeof RESOURCE_PATHS)
19
+ }
20
+
21
+ export type SlotSourceClassArguments = {
22
+ /**
23
+ * The slot source's JSON.
24
+ */
25
+ json: NonNullable<SymbolResource[(typeof SlotSourceClass)['resourceType']]>
26
+ } & ResourceClassArguments<'default'>
27
+
28
+ export class SlotSourceClass extends ResourceClass<SlotSourceNode> {
29
+ static readonly resourceType = 'slot_source' as const
30
+
31
+ public slotSourceJSON: NonNullable<SlotSourceClassArguments['json']>
32
+
33
+ constructor(sandstoneCore: SandstoneCore, name: string, args: SlotSourceClassArguments) {
34
+ super(
35
+ sandstoneCore,
36
+ { packType: sandstoneCore.pack.dataPack(), extension: 'json' },
37
+ SlotSourceNode,
38
+ SlotSourceClass.resourceType,
39
+ sandstoneCore.pack.resourceToPath(name, RESOURCE_PATHS[SlotSourceClass.resourceType].path),
40
+ args,
41
+ )
42
+
43
+ this.slotSourceJSON = args.json
44
+
45
+ this.handleConflicts()
46
+ }
47
+ }
@@ -0,0 +1,47 @@
1
+ import { RESOURCE_PATHS, type SymbolResource } from 'sandstone/arguments'
2
+ import { ContainerNode } from '../../nodes'
3
+ import type { SandstoneCore } from '../../sandstoneCore'
4
+ import type { ResourceClassArguments, ResourceNode } from '../resource'
5
+ import { ResourceClass, jsonStringify } from '../resource'
6
+
7
+ /**
8
+ * A node representing a Minecraft sulfur cube archetype.
9
+ */
10
+ export class SulfurCubeArchetypeNode extends ContainerNode implements ResourceNode<SulfurCubeArchetypeClass> {
11
+ constructor(
12
+ sandstoneCore: SandstoneCore,
13
+ public resource: SulfurCubeArchetypeClass,
14
+ ) {
15
+ super(sandstoneCore)
16
+ }
17
+
18
+ getValue = () => jsonStringify(this.resource.sulfurCubeArchetypeJSON, this.resource._resourceType as keyof typeof RESOURCE_PATHS)
19
+ }
20
+
21
+ export type SulfurCubeArchetypeClassArguments = {
22
+ /**
23
+ * The sulfur cube archetype's JSON.
24
+ */
25
+ json: SymbolResource[(typeof SulfurCubeArchetypeClass)['resourceType']]
26
+ } & ResourceClassArguments<'default'>
27
+
28
+ export class SulfurCubeArchetypeClass extends ResourceClass<SulfurCubeArchetypeNode> {
29
+ static readonly resourceType = 'sulfur_cube_archetype' as const
30
+
31
+ public sulfurCubeArchetypeJSON: NonNullable<SulfurCubeArchetypeClassArguments['json']>
32
+
33
+ constructor(sandstoneCore: SandstoneCore, name: string, args: SulfurCubeArchetypeClassArguments) {
34
+ super(
35
+ sandstoneCore,
36
+ { packType: sandstoneCore.pack.dataPack(), extension: 'json' },
37
+ SulfurCubeArchetypeNode,
38
+ SulfurCubeArchetypeClass.resourceType,
39
+ sandstoneCore.pack.resourceToPath(name, RESOURCE_PATHS[SulfurCubeArchetypeClass.resourceType].path),
40
+ args,
41
+ )
42
+
43
+ this.sulfurCubeArchetypeJSON = args.json
44
+
45
+ this.handleConflicts()
46
+ }
47
+ }
package/src/pack/pack.ts CHANGED
@@ -28,6 +28,7 @@ import type {
28
28
  ChatTypeClassArguments,
29
29
  DamageTypeClassArguments,
30
30
  DataPointPickClass,
31
+ DecoratedPotPatternClassArguments,
31
32
  DialogClassArguments,
32
33
  EnchantmentClassArguments,
33
34
  EnchantmentProviderClassArguments,
@@ -50,7 +51,9 @@ import type {
50
51
  PredicateClassArguments,
51
52
  RecipeClassArguments,
52
53
  ShaderClassArguments,
54
+ SlotSourceClassArguments,
53
55
  SoundEventArguments,
56
+ SulfurCubeArchetypeClassArguments,
54
57
  TagClassArguments,
55
58
  TagValuesJSON,
56
59
  TestEnvironmentClassArguments,
@@ -74,6 +77,7 @@ import {
74
77
  BlockStateClass,
75
78
  ChatTypeClass,
76
79
  DamageTypeClass,
80
+ DecoratedPotPatternClass,
77
81
  DialogClass,
78
82
  EnchantmentClass,
79
83
  EnchantmentProviderClass,
@@ -96,7 +100,9 @@ import {
96
100
  RecipeClass,
97
101
  SandstoneCore,
98
102
  ShaderClass,
103
+ SlotSourceClass,
99
104
  SoundEventClass,
105
+ SulfurCubeArchetypeClass,
100
106
  TagClass,
101
107
  TestEnvironmentClass,
102
108
  TestInstanceClass,
@@ -1114,6 +1120,15 @@ export class SandstonePack {
1114
1120
  ...options,
1115
1121
  })
1116
1122
 
1123
+ DecoratedPotPattern = (name: string, decoratedPotPattern: NonNullable<SymbolResource['decorated_pot_pattern']>, options?: Partial<DecoratedPotPatternClassArguments>) =>
1124
+ new DecoratedPotPatternClass(this.core, name, {
1125
+ json: decoratedPotPattern,
1126
+ creator: 'user',
1127
+ addToSandstoneCore: true,
1128
+ onConflict: conflictDefaults('decorated_pot_pattern') as DecoratedPotPatternClassArguments['onConflict'],
1129
+ ...options,
1130
+ })
1131
+
1117
1132
  ItemModifier = (name: string, itemModifier: NonNullable<SymbolResource['item_modifier']>, options?: Partial<Omit<ItemModifierClassArguments, 'json'>>) =>
1118
1133
  new ItemModifierClass(this.core, name, {
1119
1134
  json: itemModifier,
@@ -1154,6 +1169,24 @@ export class SandstonePack {
1154
1169
  ...options,
1155
1170
  })
1156
1171
 
1172
+ SlotSource = (name: string, slotSource: NonNullable<SymbolResource['slot_source']>, options?: Partial<SlotSourceClassArguments>) =>
1173
+ new SlotSourceClass(this.core, name, {
1174
+ json: slotSource,
1175
+ creator: 'user',
1176
+ addToSandstoneCore: true,
1177
+ onConflict: conflictDefaults('slot_source') as SlotSourceClassArguments['onConflict'],
1178
+ ...options,
1179
+ })
1180
+
1181
+ SulfurCubeArchetype = (name: string, sulfurCubeArchetype: NonNullable<SymbolResource['sulfur_cube_archetype']>, options?: Partial<SulfurCubeArchetypeClassArguments>) =>
1182
+ new SulfurCubeArchetypeClass(this.core, name, {
1183
+ json: sulfurCubeArchetype,
1184
+ creator: 'user',
1185
+ addToSandstoneCore: true,
1186
+ onConflict: conflictDefaults('sulfur_cube_archetype') as SulfurCubeArchetypeClassArguments['onConflict'],
1187
+ ...options,
1188
+ })
1189
+
1157
1190
  /** @ts-ignore */
1158
1191
  Tag = <T extends LiteralUnion<REGISTRIES>>(
1159
1192
  type: T,