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.
- package/dist/_internal/index.d.ts +34 -230
- package/dist/_internal/index.d.ts.map +1 -1
- package/dist/_internal/index.js +2261 -692
- package/dist/_internal/index.js.map +1 -1
- package/dist/_internal/types/arguments/generated/_builtin/block_state_keys.d.ts +175 -1
- package/dist/_internal/types/arguments/generated/_builtin/block_state_keys.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_builtin/block_states.d.ts +387 -1
- package/dist/_internal/types/arguments/generated/_builtin/block_states.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_dispatcher/block.d.ts +16 -4
- package/dist/_internal/types/arguments/generated/_dispatcher/block.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_dispatcher/resource.d.ts +27 -1
- package/dist/_internal/types/arguments/generated/_dispatcher/resource.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/advancements.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/advancements.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/atlases.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/atlases.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/attribute_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/attribute_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/block_definitions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/block_definitions.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/block_predicate_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/block_predicate_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/block_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/blocks.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/blocks.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/command_argument_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/command_argument_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/custom_stats.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/custom_stats.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/data_component_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/data_component_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/decorated_pot_patterns.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/decorated_pot_patterns.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/entity_sub_predicate_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/entity_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/entity_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/environment_attributes.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/environment_attributes.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/fluids.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/int_provider_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/int_provider_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/item_definitions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/item_definitions.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/items.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/items.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/langs.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/langs.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_condition_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_condition_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_function_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_function_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_number_provider_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_number_provider_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_pool_entry_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_tables.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_tables.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/mob_effects.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/models.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/models.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/number_format_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/number_providers.d.ts +5 -0
- package/dist/_internal/types/arguments/generated/_registry/number_providers.d.ts.map +1 -0
- package/dist/_internal/types/arguments/generated/_registry/outgoing_rpc_methods.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/outgoing_rpc_methods.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/particle_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/particle_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/point_of_interest_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/post_effects.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/post_effects.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/potions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/predicates.d.ts +5 -0
- package/dist/_internal/types/arguments/generated/_registry/predicates.d.ts.map +1 -0
- package/dist/_internal/types/arguments/generated/_registry/recipe_serializers.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/recipe_serializers.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/recipe_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/recipe_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/recipes.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/recipes.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/rule_tests.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/rule_tests.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/sound_events.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/sound_events.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/sounds.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/sounds.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/spawn_condition_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/structures.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/structures.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_blocks.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_blocks.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_damage_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_damage_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_entity_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_entity_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_items.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_items.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_biomes.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_biomes.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_features.d.ts +5 -0
- package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_features.d.ts.map +1 -0
- package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_structures.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_structures.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/textures.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/textures.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/trim_materials.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/villager_trades.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/villager_trades.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_biomes.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_biomes.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_block_state_provider_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_block_state_provider_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_carver_types.d.ts +5 -0
- package/dist/_internal/types/arguments/generated/_registry/worldgen_carver_types.d.ts.map +1 -0
- package/dist/_internal/types/arguments/generated/_registry/worldgen_carvers.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_carvers.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_configured_carvers.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_configured_features.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_density_function_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_density_function_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_density_functions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_density_functions.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_feature_types.d.ts +5 -0
- package/dist/_internal/types/arguments/generated/_registry/worldgen_feature_types.d.ts.map +1 -0
- package/dist/_internal/types/arguments/generated/_registry/worldgen_features.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_features.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_foliage_placer_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_foliage_placer_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_material_condition_types.d.ts +5 -0
- package/dist/_internal/types/arguments/generated/_registry/worldgen_material_condition_types.d.ts.map +1 -0
- package/dist/_internal/types/arguments/generated/_registry/worldgen_material_conditions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_material_conditions.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_material_rule_types.d.ts +5 -0
- package/dist/_internal/types/arguments/generated/_registry/worldgen_material_rule_types.d.ts.map +1 -0
- package/dist/_internal/types/arguments/generated/_registry/worldgen_material_rules.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_material_rules.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_noise_settings.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_noises.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_noises.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_placed_features.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_placed_features.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_placement_modifier_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_placement_modifier_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_structure_placements.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_structure_placements.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_structure_sets.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_structure_sets.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_structures.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_structures.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_template_pools.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_template_pools.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_tree_decorator_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_tree_decorator_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_trunk_placer_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_trunk_placer_types.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/assets/atlas.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/assets/atlas.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/assets/equipment.d.ts +7 -0
- package/dist/_internal/types/arguments/generated/assets/equipment.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/assets/item_definition.d.ts +1 -10
- package/dist/_internal/types/arguments/generated/assets/item_definition.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/assets/model.d.ts +11 -0
- package/dist/_internal/types/arguments/generated/assets/model.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/assets/texture_meta.d.ts +6 -0
- package/dist/_internal/types/arguments/generated/assets/texture_meta.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/advancement/predicate.d.ts +4 -22
- package/dist/_internal/types/arguments/generated/data/advancement/predicate.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/advancement/trigger.d.ts +27 -13
- package/dist/_internal/types/arguments/generated/data/advancement/trigger.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/advancement.d.ts +2 -1
- package/dist/_internal/types/arguments/generated/data/advancement.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/dialog.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/data/dialog.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/item_modifier.d.ts +2 -1
- package/dist/_internal/types/arguments/generated/data/item_modifier.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/loot/condition.d.ts +8 -4
- package/dist/_internal/types/arguments/generated/data/loot/condition.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/loot/function.d.ts +16 -4
- package/dist/_internal/types/arguments/generated/data/loot/function.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/loot.d.ts +30 -6
- package/dist/_internal/types/arguments/generated/data/loot.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/number_provider.d.ts +17 -4
- package/dist/_internal/types/arguments/generated/data/number_provider.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/predicate.d.ts +4 -2
- package/dist/_internal/types/arguments/generated/data/predicate.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/recipe.d.ts +4 -1
- package/dist/_internal/types/arguments/generated/data/recipe.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/slot_source.d.ts +20 -2
- package/dist/_internal/types/arguments/generated/data/slot_source.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/trim.d.ts +5 -0
- package/dist/_internal/types/arguments/generated/data/trim.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/variants/instrument.d.ts +18 -3
- package/dist/_internal/types/arguments/generated/data/variants/instrument.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/villager_trade.d.ts +9 -0
- package/dist/_internal/types/arguments/generated/data/villager_trade.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/attribute.d.ts +17 -2
- package/dist/_internal/types/arguments/generated/data/worldgen/attribute.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/biome.d.ts +3 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/biome.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/carver.d.ts +24 -6
- package/dist/_internal/types/arguments/generated/data/worldgen/carver.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/density_function.d.ts +33 -4
- package/dist/_internal/types/arguments/generated/data/worldgen/density_function.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/dimension.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/dimension.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/feature/block_state_provider.d.ts +20 -2
- package/dist/_internal/types/arguments/generated/data/worldgen/feature/block_state_provider.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/feature/placement.d.ts +11 -2
- package/dist/_internal/types/arguments/generated/data/worldgen/feature/placement.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/feature/tree.d.ts +12 -5
- package/dist/_internal/types/arguments/generated/data/worldgen/feature/tree.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/feature.d.ts +50 -60
- package/dist/_internal/types/arguments/generated/data/worldgen/feature.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/material_condition.d.ts +3 -3
- package/dist/_internal/types/arguments/generated/data/worldgen/material_condition.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/material_rule.d.ts +3 -3
- package/dist/_internal/types/arguments/generated/data/worldgen/material_rule.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/noise_settings.d.ts +4 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/noise_settings.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen/processor_list.d.ts +14 -2
- package/dist/_internal/types/arguments/generated/data/worldgen/processor_list.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/data/worldgen.d.ts +6 -1
- package/dist/_internal/types/arguments/generated/data/worldgen.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/dispatcher.d.ts +3 -3
- package/dist/_internal/types/arguments/generated/dispatcher.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/registry-sets.d.ts +8 -5
- package/dist/_internal/types/arguments/generated/registry-sets.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/registry.d.ts +16 -10
- package/dist/_internal/types/arguments/generated/registry.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/resource-paths.d.ts +15 -0
- package/dist/_internal/types/arguments/generated/resource-paths.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/resources.d.ts +2 -2
- package/dist/_internal/types/arguments/generated/resources.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/block/brewing_stand.d.ts +15 -3
- package/dist/_internal/types/arguments/generated/world/block/brewing_stand.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/block/decorated_pot.d.ts +7 -0
- package/dist/_internal/types/arguments/generated/world/block/decorated_pot.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/block/furnace.d.ts +9 -5
- package/dist/_internal/types/arguments/generated/world/block/furnace.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/block/sign.d.ts +8 -0
- package/dist/_internal/types/arguments/generated/world/block/sign.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/component/item.d.ts +43 -10
- package/dist/_internal/types/arguments/generated/world/component/item.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/component/predicate.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/world/component/predicate.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/entity/boat.d.ts +11 -1
- package/dist/_internal/types/arguments/generated/world/entity/boat.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/entity/mob/player.d.ts +2 -1
- package/dist/_internal/types/arguments/generated/world/entity/mob/player.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/entity/mob.d.ts +0 -4
- package/dist/_internal/types/arguments/generated/world/entity/mob.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/entity/projectile.d.ts +2 -0
- package/dist/_internal/types/arguments/generated/world/entity/projectile.d.ts.map +1 -1
- package/dist/_internal/types/arguments/generated/world/entity.d.ts +4 -0
- package/dist/_internal/types/arguments/generated/world/entity.d.ts.map +1 -1
- package/dist/_internal/types/commands/commands.d.ts +2 -1
- package/dist/_internal/types/commands/commands.d.ts.map +1 -1
- package/dist/_internal/types/commands/implementations/entity/execute.d.ts +53 -5
- package/dist/_internal/types/commands/implementations/entity/execute.d.ts.map +1 -1
- package/dist/_internal/types/commands/implementations/index.d.ts +1 -0
- package/dist/_internal/types/commands/implementations/index.d.ts.map +1 -1
- package/dist/_internal/types/commands/implementations/player/posteffect.d.ts +61 -0
- package/dist/_internal/types/commands/implementations/player/posteffect.d.ts.map +1 -0
- package/dist/_internal/types/commands/implementations/world/item.d.ts +73 -11
- package/dist/_internal/types/commands/implementations/world/item.d.ts.map +1 -1
- package/dist/_internal/types/core/resources/datapack/decoratedPotPattern.d.ts +25 -0
- package/dist/_internal/types/core/resources/datapack/decoratedPotPattern.d.ts.map +1 -0
- package/dist/_internal/types/core/resources/datapack/index.d.ts +2 -0
- package/dist/_internal/types/core/resources/datapack/index.d.ts.map +1 -1
- package/dist/_internal/types/core/resources/datapack/slotSource.d.ts +27 -0
- package/dist/_internal/types/core/resources/datapack/slotSource.d.ts.map +1 -0
- package/dist/_internal/types/flow/Flow.d.ts +32 -6
- package/dist/_internal/types/flow/Flow.d.ts.map +1 -1
- package/dist/_internal/types/flow/conditions/command.d.ts.map +1 -1
- package/dist/_internal/types/flow/conditions/condition.d.ts +0 -8
- package/dist/_internal/types/flow/conditions/condition.d.ts.map +1 -1
- package/dist/_internal/types/flow/conditions/index.d.ts +3 -0
- package/dist/_internal/types/flow/conditions/index.d.ts.map +1 -1
- package/dist/_internal/types/flow/conditions/resources/index.d.ts +1 -0
- package/dist/_internal/types/flow/conditions/resources/index.d.ts.map +1 -1
- package/dist/_internal/types/flow/conditions/resources/slotSource.d.ts +14 -0
- package/dist/_internal/types/flow/conditions/resources/slotSource.d.ts.map +1 -0
- package/dist/_internal/types/flow/conditions/variables/dataPoint.d.ts.map +1 -1
- package/dist/_internal/types/flow/conditions/variables/items.d.ts +40 -7
- package/dist/_internal/types/flow/conditions/variables/items.d.ts.map +1 -1
- package/dist/_internal/types/pack/pack.d.ts +8 -3
- package/dist/_internal/types/pack/pack.d.ts.map +1 -1
- package/dist/_internal/types/pack/visitors/orTransformationVisitor.d.ts +6 -41
- package/dist/_internal/types/pack/visitors/orTransformationVisitor.d.ts.map +1 -1
- package/dist/_internal/types/variables/abstractClasses.d.ts +0 -9
- package/dist/_internal/types/variables/abstractClasses.d.ts.map +1 -1
- package/dist/browser/sandstone.esm.js +2261 -692
- package/dist/browser/sandstone.esm.js.map +1 -1
- package/dist/exports/arguments/index.d.ts +1 -1
- package/dist/exports/arguments/index.js +1 -1
- package/dist/exports/commands/index.d.ts +1 -1
- package/dist/exports/commands/index.js +1 -1
- package/dist/exports/core/index.d.ts +1 -1
- package/dist/exports/core/index.js +1 -1
- package/dist/exports/flow/index.d.ts +1 -1
- package/dist/exports/flow/index.js +1 -1
- package/dist/exports/index.d.ts +1 -1
- package/dist/exports/index.js +1 -1
- package/dist/exports/variables/index.d.ts +1 -1
- package/dist/exports/variables/index.js +1 -1
- package/package.json +3 -3
- package/src/arguments/generated/_builtin/block_state_keys.ts +232 -0
- package/src/arguments/generated/_builtin/block_states.ts +444 -0
- package/src/arguments/generated/_dispatcher/block.ts +20 -4
- package/src/arguments/generated/_dispatcher/resource.ts +33 -0
- package/src/arguments/generated/_registry/advancements.ts +114 -0
- package/src/arguments/generated/_registry/atlases.ts +0 -1
- package/src/arguments/generated/_registry/attribute_types.ts +1 -0
- package/src/arguments/generated/_registry/block_definitions.ts +58 -0
- package/src/arguments/generated/_registry/block_predicate_types.ts +1 -0
- package/src/arguments/generated/_registry/blocks.ts +58 -0
- package/src/arguments/generated/_registry/command_argument_types.ts +2 -0
- package/src/arguments/generated/_registry/custom_stats.ts +1 -0
- package/src/arguments/generated/_registry/data_component_types.ts +11 -0
- package/src/arguments/generated/_registry/decorated_pot_patterns.ts +0 -1
- package/src/arguments/generated/_registry/entity_types.ts +3 -0
- package/src/arguments/generated/_registry/environment_attributes.ts +3 -0
- package/src/arguments/generated/_registry/int_provider_types.ts +1 -0
- package/src/arguments/generated/_registry/item_definitions.ts +73 -0
- package/src/arguments/generated/_registry/items.ts +73 -0
- package/src/arguments/generated/_registry/langs.ts +1 -0
- package/src/arguments/generated/_registry/loot_condition_types.ts +1 -2
- package/src/arguments/generated/_registry/loot_function_types.ts +0 -1
- package/src/arguments/generated/_registry/loot_number_provider_types.ts +3 -0
- package/src/arguments/generated/_registry/loot_tables.ts +60 -0
- package/src/arguments/generated/_registry/models.ts +170 -2
- package/src/arguments/generated/_registry/number_providers.ts +35 -0
- package/src/arguments/generated/_registry/outgoing_rpc_methods.ts +4 -0
- package/src/arguments/generated/_registry/particle_types.ts +3 -0
- package/src/arguments/generated/_registry/post_effects.ts +0 -1
- package/src/arguments/generated/_registry/predicates.ts +12 -0
- package/src/arguments/generated/_registry/recipe_serializers.ts +1 -0
- package/src/arguments/generated/_registry/recipe_types.ts +1 -0
- package/src/arguments/generated/_registry/recipes.ts +393 -0
- package/src/arguments/generated/_registry/rule_tests.ts +4 -0
- package/src/arguments/generated/_registry/sound_events.ts +23 -0
- package/src/arguments/generated/_registry/sounds.ts +98 -8
- package/src/arguments/generated/_registry/structures.ts +279 -0
- package/src/arguments/generated/_registry/tag_blocks.ts +29 -3
- package/src/arguments/generated/_registry/tag_damage_types.ts +1 -0
- package/src/arguments/generated/_registry/tag_entity_types.ts +1 -0
- package/src/arguments/generated/_registry/tag_items.ts +7 -1
- package/src/arguments/generated/_registry/tag_worldgen_biomes.ts +18 -0
- package/src/arguments/generated/_registry/tag_worldgen_features.ts +10 -0
- package/src/arguments/generated/_registry/tag_worldgen_structures.ts +1 -0
- package/src/arguments/generated/_registry/textures.ts +101 -18
- package/src/arguments/generated/_registry/villager_trades.ts +3 -0
- package/src/arguments/generated/_registry/worldgen_biomes.ts +1 -0
- package/src/arguments/generated/_registry/worldgen_block_state_provider_types.ts +2 -0
- package/src/arguments/generated/_registry/worldgen_carver_types.ts +11 -0
- package/src/arguments/generated/_registry/worldgen_carvers.ts +1 -0
- package/src/arguments/generated/_registry/worldgen_density_function_types.ts +9 -1
- package/src/arguments/generated/_registry/worldgen_density_functions.ts +16 -0
- package/src/arguments/generated/_registry/worldgen_feature_types.ts +68 -0
- package/src/arguments/generated/_registry/worldgen_features.ts +220 -43
- package/src/arguments/generated/_registry/worldgen_foliage_placer_types.ts +1 -0
- package/src/arguments/generated/_registry/worldgen_material_condition_types.ts +20 -0
- package/src/arguments/generated/_registry/worldgen_material_conditions.ts +8 -11
- package/src/arguments/generated/_registry/worldgen_material_rule_types.ts +13 -0
- package/src/arguments/generated/_registry/worldgen_material_rules.ts +40 -4
- package/src/arguments/generated/_registry/worldgen_noises.ts +1 -0
- package/src/arguments/generated/_registry/worldgen_placed_features.ts +11 -0
- package/src/arguments/generated/_registry/worldgen_placement_modifier_types.ts +3 -1
- package/src/arguments/generated/_registry/worldgen_structure_placements.ts +1 -0
- package/src/arguments/generated/_registry/worldgen_structure_sets.ts +1 -0
- package/src/arguments/generated/_registry/worldgen_structures.ts +18 -0
- package/src/arguments/generated/_registry/worldgen_template_pools.ts +57 -0
- package/src/arguments/generated/_registry/worldgen_tree_decorator_types.ts +1 -0
- package/src/arguments/generated/_registry/worldgen_trunk_placer_types.ts +1 -0
- package/src/arguments/generated/assets/atlas.ts +1 -1
- package/src/arguments/generated/assets/equipment.ts +7 -0
- package/src/arguments/generated/assets/item_definition.ts +0 -12
- package/src/arguments/generated/assets/model.ts +11 -0
- package/src/arguments/generated/assets/texture_meta.ts +6 -0
- package/src/arguments/generated/data/advancement/predicate.ts +9 -26
- package/src/arguments/generated/data/advancement/trigger.ts +29 -13
- package/src/arguments/generated/data/advancement.ts +2 -1
- package/src/arguments/generated/data/dialog.ts +1 -1
- package/src/arguments/generated/data/item_modifier.ts +7 -1
- package/src/arguments/generated/data/loot/condition.ts +10 -2
- package/src/arguments/generated/data/loot/function.ts +22 -4
- package/src/arguments/generated/data/loot.ts +34 -6
- package/src/arguments/generated/data/number_provider.ts +26 -4
- package/src/arguments/generated/data/predicate.ts +8 -2
- package/src/arguments/generated/data/recipe.ts +4 -0
- package/src/arguments/generated/data/slot_source.ts +23 -2
- package/src/arguments/generated/data/trim.ts +5 -0
- package/src/arguments/generated/data/variants/instrument.ts +18 -3
- package/src/arguments/generated/data/villager_trade.ts +9 -0
- package/src/arguments/generated/data/worldgen/attribute.ts +24 -1
- package/src/arguments/generated/data/worldgen/biome.ts +3 -1
- package/src/arguments/generated/data/worldgen/carver.ts +34 -7
- package/src/arguments/generated/data/worldgen/density_function.ts +41 -4
- package/src/arguments/generated/data/worldgen/dimension.ts +1 -2
- package/src/arguments/generated/data/worldgen/feature/block_state_provider.ts +21 -1
- package/src/arguments/generated/data/worldgen/feature/placement.ts +13 -1
- package/src/arguments/generated/data/worldgen/feature/tree.ts +13 -3
- package/src/arguments/generated/data/worldgen/feature.ts +59 -65
- package/src/arguments/generated/data/worldgen/material_condition.ts +7 -3
- package/src/arguments/generated/data/worldgen/material_rule.ts +7 -3
- package/src/arguments/generated/data/worldgen/noise_settings.ts +4 -1
- package/src/arguments/generated/data/worldgen/processor_list.ts +17 -2
- package/src/arguments/generated/data/worldgen.ts +7 -0
- package/src/arguments/generated/dispatcher.ts +8 -8
- package/src/arguments/generated/registry-sets.ts +14 -8
- package/src/arguments/generated/registry.ts +22 -15
- package/src/arguments/generated/resource-paths.ts +3 -0
- package/src/arguments/generated/resources.ts +4 -0
- package/src/arguments/generated/world/block/brewing_stand.ts +15 -3
- package/src/arguments/generated/world/block/decorated_pot.ts +7 -0
- package/src/arguments/generated/world/block/furnace.ts +9 -5
- package/src/arguments/generated/world/block/sign.ts +8 -0
- package/src/arguments/generated/world/component/item.ts +58 -8
- package/src/arguments/generated/world/component/predicate.ts +1 -1
- package/src/arguments/generated/world/entity/boat.ts +13 -0
- package/src/arguments/generated/world/entity/mob/player.ts +12 -1
- package/src/arguments/generated/world/entity/mob.ts +0 -4
- package/src/arguments/generated/world/entity/projectile.ts +2 -0
- package/src/arguments/generated/world/entity.ts +4 -0
- package/src/commands/commands.ts +5 -0
- package/src/commands/implementations/entity/execute.ts +65 -8
- package/src/commands/implementations/index.ts +1 -0
- package/src/commands/implementations/player/posteffect.ts +75 -0
- package/src/commands/implementations/world/item.ts +96 -19
- package/src/core/resources/datapack/decoratedPotPattern.ts +47 -0
- package/src/core/resources/datapack/index.ts +2 -2
- package/src/core/resources/datapack/slotSource.ts +58 -0
- package/src/flow/Flow.ts +43 -11
- package/src/flow/conditions/command.ts +0 -7
- package/src/flow/conditions/condition.ts +0 -9
- package/src/flow/conditions/index.ts +3 -0
- package/src/flow/conditions/resources/index.ts +1 -0
- package/src/flow/conditions/resources/slotSource.ts +21 -0
- package/src/flow/conditions/variables/dataPoint.ts +3 -11
- package/src/flow/conditions/variables/items.ts +53 -5
- package/src/pack/pack.ts +28 -7
- package/src/pack/visitors/orTransformationVisitor.ts +37 -311
- package/src/sandstone.ts +56 -3
- package/src/utils.ts +1 -1
- package/src/variables/abstractClasses.ts +0 -10
|
@@ -1,342 +1,68 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import type
|
|
4
|
-
import { AndNode, ConditionNode, IfNode, NotNode, OrNode } from '../../flow'
|
|
1
|
+
import { ScoreboardCommandNode } from '../../commands'
|
|
2
|
+
import type { Node } from '../../core'
|
|
3
|
+
import { AndNode, type ConditionNode, IfNode, NotNode, OrNode } from '../../flow'
|
|
5
4
|
import { GenericSandstoneVisitor } from './visitor'
|
|
6
5
|
|
|
7
|
-
/**
|
|
8
|
-
* Condition node whose `getValue()` returns `"if function <name>"`.
|
|
9
|
-
* Used to make an IfNode's existing `IfElseTransformationVisitor` emit
|
|
10
|
-
* `execute if function <child> run <body>`, which succeeds exactly when the
|
|
11
|
-
* child MCFunction returns a positive value (e.g. via an early `return 1`).
|
|
12
|
-
*/
|
|
13
|
-
class FunctionReturnConditionNode extends ConditionNode {
|
|
14
|
-
constructor(
|
|
15
|
-
public sandstoneCore: SandstoneCore,
|
|
16
|
-
public functionName: string,
|
|
17
|
-
) {
|
|
18
|
-
super(sandstoneCore)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
getValue = () => `if function ${this.functionName}`
|
|
22
|
-
}
|
|
23
|
-
|
|
24
6
|
export class OrTransformationVisitor extends GenericSandstoneVisitor {
|
|
25
7
|
visitIfNode = (node_: IfNode) => {
|
|
26
|
-
const { preNodes, conditionNode } = this.parseConditionNode(node_.condition
|
|
8
|
+
const { preNodes, conditionNode } = this.parseConditionNode(node_.condition)
|
|
27
9
|
node_.condition = conditionNode
|
|
28
10
|
return [...preNodes, this.genericVisit(node_)]
|
|
29
11
|
}
|
|
30
12
|
|
|
31
|
-
parseConditionNode = (node: ConditionNode
|
|
13
|
+
parseConditionNode = (node: ConditionNode): { preNodes: Node[]; conditionNode: ConditionNode } => {
|
|
32
14
|
if (node instanceof OrNode) {
|
|
33
|
-
return this.parseOrNode(node
|
|
15
|
+
return this.parseOrNode(node)
|
|
34
16
|
}
|
|
35
17
|
if (node instanceof AndNode) {
|
|
36
|
-
return this.parseAndNode(node
|
|
18
|
+
return this.parseAndNode(node)
|
|
37
19
|
}
|
|
38
20
|
if (node instanceof NotNode) {
|
|
39
|
-
return this.parseNotNode(node
|
|
21
|
+
return this.parseNotNode(node)
|
|
40
22
|
}
|
|
41
23
|
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
// `CommandCondition`) populate it; pure predicates leave it unset.
|
|
45
|
-
return { preNodes: [...(node.preNodes ?? [])], conditionNode: node }
|
|
24
|
+
// Default case, just return the node as is
|
|
25
|
+
return { preNodes: [], conditionNode: node }
|
|
46
26
|
}
|
|
27
|
+
parseOrNode = (node: OrNode): { preNodes: Node[]; conditionNode: ConditionNode } => {
|
|
28
|
+
const variable = this.core.pack.Variable(undefined, 'condition')
|
|
47
29
|
|
|
48
|
-
|
|
49
|
-
// Single branch: collapse through so the IfNode behaves as if it had the inner condition.
|
|
50
|
-
if (node.conditions.length === 1) {
|
|
51
|
-
return this.parseConditionNode(node.conditions[0], parentMCFunction)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Multiple branches: extract to a child MCFunction with execute-if-return-1 short-circuit.
|
|
55
|
-
// Inside the child: `execute if <c1> run return 1`, `execute if <c2> run return 1`, ..., `return 0`.
|
|
56
|
-
// The first matching branch returns 1 and exits the function immediately; the rest are skipped.
|
|
57
|
-
// The caller uses `execute if function <child>` to test whether any branch matched.
|
|
58
|
-
const parentName = parentMCFunction?.resource.name ?? '__sandstone'
|
|
59
|
-
const orMCFunction = new MCFunctionClass(
|
|
60
|
-
this.core,
|
|
61
|
-
`${parentName}/or_check`,
|
|
62
|
-
{
|
|
63
|
-
addToSandstoneCore: true,
|
|
64
|
-
creator: 'sandstone',
|
|
65
|
-
onConflict: 'rename',
|
|
66
|
-
},
|
|
67
|
-
)
|
|
68
|
-
|
|
69
|
-
this.core.enterMCFunction(orMCFunction)
|
|
30
|
+
const conditionNode = variable.equalTo(1)._toMinecraftCondition()
|
|
70
31
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
32
|
+
const realPreNodes: Node[] = [new ScoreboardCommandNode(this.pack, 'players', 'reset', variable)]
|
|
33
|
+
const orExecuteNodes = node.conditions.map((condition) => {
|
|
34
|
+
const { preNodes, conditionNode: parsedConditionNode } = this.parseConditionNode(condition)
|
|
35
|
+
realPreNodes.push(...preNodes)
|
|
75
36
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
37
|
+
const ifNode = new IfNode(this.core, parsedConditionNode)
|
|
38
|
+
ifNode.body = [new ScoreboardCommandNode(this.pack, 'players', 'set', variable, 1)]
|
|
39
|
+
return ifNode
|
|
40
|
+
})
|
|
81
41
|
|
|
82
42
|
return {
|
|
83
|
-
preNodes: [],
|
|
84
|
-
conditionNode
|
|
43
|
+
preNodes: [...realPreNodes, ...orExecuteNodes],
|
|
44
|
+
conditionNode,
|
|
85
45
|
}
|
|
86
46
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
// child MCFunction so commands can run inline before their check.
|
|
98
|
-
const parsed = node.conditions.map((condition) => this.parseConditionNode(condition, parentMCFunction))
|
|
99
|
-
const anyHasCommands = parsed.some((p) => (p.preNodes ?? []).length > 0)
|
|
100
|
-
|
|
101
|
-
if (!anyHasCommands) {
|
|
102
|
-
// Inline: pure conditions chain via the existing AndNode behavior. Order is preserved
|
|
103
|
-
// by `Array.prototype.map`. No child function needed.
|
|
104
|
-
const finalPreNodes: Node[] = []
|
|
105
|
-
const conditionNode = new AndNode(
|
|
106
|
-
node.sandstoneCore,
|
|
107
|
-
parsed.map((p) => {
|
|
108
|
-
finalPreNodes.push(...p.preNodes)
|
|
109
|
-
return p.conditionNode
|
|
110
|
-
}),
|
|
111
|
-
)
|
|
112
|
-
return { preNodes: finalPreNodes, conditionNode }
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// At least one condition needs to run commands. Extract to a child MCFunction:
|
|
116
|
-
// - Pure-predicate runs are batched into `execute <pos-c1> <pos-c2> ... run return 1`
|
|
117
|
-
// (positive form, NOT flipped — chain fires `return 1` only when the whole batch
|
|
118
|
-
// holds; otherwise we fall through to the next check).
|
|
119
|
-
// - Command-needing conditions emit their stashed side-effects inline, then a flipped
|
|
120
|
-
// `execute if <failure-form> run return 0` so the function returns 0 as soon as a
|
|
121
|
-
// side-effecting check fails to hold.
|
|
122
|
-
// - Default `return 0` reaches the end only when no command-needing check failed and
|
|
123
|
-
// no pure batch all-held; the function returns 1 only via a pure-batch success path,
|
|
124
|
-
// signalled to the caller by `execute if function <and>`.
|
|
125
|
-
const parentName = parentMCFunction?.resource.name ?? '__sandstone'
|
|
126
|
-
const andMCFunction = new MCFunctionClass(
|
|
127
|
-
this.core,
|
|
128
|
-
`${parentName}/and_check`,
|
|
129
|
-
{
|
|
130
|
-
addToSandstoneCore: true,
|
|
131
|
-
creator: 'sandstone',
|
|
132
|
-
onConflict: 'rename',
|
|
133
|
-
},
|
|
47
|
+
parseAndNode = (node: AndNode): { preNodes: Node[]; conditionNode: ConditionNode } => {
|
|
48
|
+
const finalPreNodes: Node[] = []
|
|
49
|
+
|
|
50
|
+
const conditionNode = new AndNode(
|
|
51
|
+
node.sandstoneCore,
|
|
52
|
+
node.conditions.map((condition) => {
|
|
53
|
+
const { preNodes, conditionNode } = this.parseConditionNode(condition)
|
|
54
|
+
finalPreNodes.push(...preNodes)
|
|
55
|
+
return conditionNode
|
|
56
|
+
}),
|
|
134
57
|
)
|
|
135
58
|
|
|
136
|
-
this.core.enterMCFunction(andMCFunction)
|
|
137
|
-
|
|
138
|
-
try {
|
|
139
|
-
let batch: { preNodes: Node[][]; conditionNodes: ConditionNode[] } = { preNodes: [], conditionNodes: [] }
|
|
140
|
-
|
|
141
|
-
const flushBatch = () => {
|
|
142
|
-
if (batch.conditionNodes.length === 0 && batch.preNodes.every((pn) => pn.length === 0)) {
|
|
143
|
-
batch = { preNodes: [], conditionNodes: [] }
|
|
144
|
-
return
|
|
145
|
-
}
|
|
146
|
-
// Per-batch tracker-var pattern: reset the tracker, run the chained execute to set
|
|
147
|
-
// the tracker to 1 only when the entire batch holds, then check the tracker and
|
|
148
|
-
// `return 0` if any condition failed (var != 1). Each batch uses its own tracker var
|
|
149
|
-
// so concurrent/sequential batches stay independent.
|
|
150
|
-
const tracker = this.core.pack.Variable(undefined, 'and_batch')
|
|
151
|
-
this.pushBatchedCheckBranch(
|
|
152
|
-
andMCFunction.node,
|
|
153
|
-
batch.preNodes.flat(),
|
|
154
|
-
batch.conditionNodes,
|
|
155
|
-
tracker,
|
|
156
|
-
)
|
|
157
|
-
batch = { preNodes: [], conditionNodes: [] }
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
for (const p of parsed) {
|
|
161
|
-
if (p.preNodes.length === 0) {
|
|
162
|
-
// Pure predicate: extend the current batch (still in declared order).
|
|
163
|
-
batch.preNodes.push(p.preNodes)
|
|
164
|
-
batch.conditionNodes.push(p.conditionNode)
|
|
165
|
-
} else {
|
|
166
|
-
// Command-needing condition: flush any pending batch first (preserving order),
|
|
167
|
-
// then emit this condition's commands followed by its own fail-fast check.
|
|
168
|
-
flushBatch()
|
|
169
|
-
this.pushFailFastBranch(
|
|
170
|
-
andMCFunction.node,
|
|
171
|
-
p,
|
|
172
|
-
new ReturnCommandNode(this.pack, [0]),
|
|
173
|
-
)
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
flushBatch()
|
|
177
|
-
|
|
178
|
-
// Default return: every check ran without success.
|
|
179
|
-
andMCFunction.node.body.push(new ReturnCommandNode(this.pack, [1]))
|
|
180
|
-
} finally {
|
|
181
|
-
this.core.exitMCFunction()
|
|
182
|
-
}
|
|
183
|
-
|
|
184
59
|
return {
|
|
185
|
-
preNodes:
|
|
186
|
-
conditionNode
|
|
60
|
+
preNodes: finalPreNodes,
|
|
61
|
+
conditionNode,
|
|
187
62
|
}
|
|
188
63
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
* Pushes a batched check into `targetMCFunction.body` using the tracker-var pattern:
|
|
192
|
-
* <preNodes...>
|
|
193
|
-
* scoreboard players reset <tracker>
|
|
194
|
-
* execute <if|unless> <c1> <if|unless> <c2> ... run scoreboard players set <tracker> 1
|
|
195
|
-
* execute unless score <tracker> matches 1 run return 0
|
|
196
|
-
*
|
|
197
|
-
* Consecutive pure-predicate conditions from the AND list coalesce into a single chained
|
|
198
|
-
* execute that sets the tracker to 1 only when the entire batch holds. The trailing
|
|
199
|
-
* fail-check returns 0 from the child MCFunction when any condition failed (var != 1).
|
|
200
|
-
* Using a tracker var avoids the "execute-chain only fires on ALL-pass" limitation of
|
|
201
|
-
* pure MC chains while keeping the body tight.
|
|
202
|
-
*/
|
|
203
|
-
private pushBatchedCheckBranch = (
|
|
204
|
-
targetMCFunction: MCFunctionNode,
|
|
205
|
-
preNodes: Node[],
|
|
206
|
-
conditionNodes: ConditionNode[],
|
|
207
|
-
tracker: Score,
|
|
208
|
-
) => {
|
|
209
|
-
for (const n of preNodes) {
|
|
210
|
-
targetMCFunction.body.push(n)
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
targetMCFunction.body.push(new ScoreboardCommandNode(this.pack, 'players', 'reset', tracker))
|
|
214
|
-
|
|
215
|
-
const args: SubCommand[] = []
|
|
216
|
-
for (const c of conditionNodes) {
|
|
217
|
-
const condStr = c.getValue(false)
|
|
218
|
-
const match = condStr.match(/^(if|unless)\s+([\s\S]+)$/)
|
|
219
|
-
if (!match) {
|
|
220
|
-
throw new Error(`OrTransformationVisitor: unexpected condition getValue() shape: ${condStr}`)
|
|
221
|
-
}
|
|
222
|
-
const [, keyword, condBody] = match
|
|
223
|
-
args.push([keyword, condBody])
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
if (args.length === 0) {
|
|
227
|
-
// No conditions but preNodes ran — push an unconditional set so the trailing check
|
|
228
|
-
// doesn't fire on a stale tracker.
|
|
229
|
-
targetMCFunction.body.push(new ScoreboardCommandNode(this.pack, 'players', 'set', tracker, 1))
|
|
230
|
-
} else {
|
|
231
|
-
const executeNode = new ExecuteCommandNode(this.pack, args, {
|
|
232
|
-
isSingleExecute: true,
|
|
233
|
-
body: [],
|
|
234
|
-
})
|
|
235
|
-
targetMCFunction.enterContext(executeNode, false)
|
|
236
|
-
executeNode.body = [new ScoreboardCommandNode(this.pack, 'players', 'set', tracker, 1)]
|
|
237
|
-
targetMCFunction.body.push(executeNode)
|
|
238
|
-
targetMCFunction.exitContext()
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
const failCheckNode = new ExecuteCommandNode(
|
|
242
|
-
this.pack,
|
|
243
|
-
[['unless', `score ${tracker} matches 1`]],
|
|
244
|
-
{
|
|
245
|
-
isSingleExecute: true,
|
|
246
|
-
body: [],
|
|
247
|
-
},
|
|
248
|
-
)
|
|
249
|
-
targetMCFunction.enterContext(failCheckNode, false)
|
|
250
|
-
failCheckNode.body = [new ReturnCommandNode(this.pack, [0])]
|
|
251
|
-
targetMCFunction.body.push(failCheckNode)
|
|
252
|
-
targetMCFunction.exitContext()
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* Pushes a single check branch into `targetMCFunction.body`:
|
|
257
|
-
* <preNodes...> (side-effect commands that must run before checking)
|
|
258
|
-
* execute <if|unless> <condBody> run <bodyNode>
|
|
259
|
-
*
|
|
260
|
-
* When `negated` is false, the helper uses the condition's positive form
|
|
261
|
-
* (`getValue(false)`); when true, it uses the failure form (`getValue(true)`).
|
|
262
|
-
* For OR semantics: pass `negated=false` with `bodyNode = return 1` (exit on first match).
|
|
263
|
-
*/
|
|
264
|
-
private pushCheckBranch = (
|
|
265
|
-
targetMCFunction: MCFunctionNode,
|
|
266
|
-
parsed: { preNodes: Node[]; conditionNode: ConditionNode },
|
|
267
|
-
negated: boolean,
|
|
268
|
-
bodyNode: Node,
|
|
269
|
-
) => {
|
|
270
|
-
// Any nested preNodes (e.g. nested or/and reset+score commands, or the inner
|
|
271
|
-
// condition's side-effect commands) run inside the child function body in order.
|
|
272
|
-
for (const n of parsed.preNodes) {
|
|
273
|
-
targetMCFunction.body.push(n)
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
// Extract the chain keyword ("if" or "unless") and the condition body from `getValue()`.
|
|
277
|
-
// SingleConditionNode returns "if <body>"; NotNode-wrapped conditions return "unless <body>".
|
|
278
|
-
// AndNode already produces execute-chain strings; a nested FunctionReturnConditionNode
|
|
279
|
-
// returns "if function <name>" which fits the same shape.
|
|
280
|
-
const condStr = parsed.conditionNode.getValue(negated)
|
|
281
|
-
const match = condStr.match(/^(if|unless)\s+([\s\S]+)$/)
|
|
282
|
-
if (!match) {
|
|
283
|
-
throw new Error(`OrTransformationVisitor: unexpected condition getValue() shape: ${condStr}`)
|
|
284
|
-
}
|
|
285
|
-
const [, keyword, condBody] = match
|
|
286
|
-
|
|
287
|
-
// Construct ExecuteCommandNode for `execute <keyword> <condBody> run <bodyNode>`.
|
|
288
|
-
// The constructor's append() calls exitContext, so we first push an empty executeNode
|
|
289
|
-
// into the MCFunction context stack (addNode=false) so the exit succeeds.
|
|
290
|
-
const executeNode = new ExecuteCommandNode(this.pack, [[keyword, condBody]], {
|
|
291
|
-
isSingleExecute: true,
|
|
292
|
-
body: [],
|
|
293
|
-
})
|
|
294
|
-
targetMCFunction.enterContext(executeNode, false)
|
|
295
|
-
executeNode.body = [bodyNode]
|
|
296
|
-
targetMCFunction.body.push(executeNode)
|
|
297
|
-
targetMCFunction.exitContext()
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
/**
|
|
301
|
-
* Pushes a fail-fast check for an AND command-needing condition into `targetMCFunction.body`:
|
|
302
|
-
* <preNodes...>
|
|
303
|
-
* execute <if|unless> <condBody> run <bodyNode>
|
|
304
|
-
*
|
|
305
|
-
* Uses the condition's FAILURE form (`getValue(true)`) and flips the leading
|
|
306
|
-
* `if`/`unless` keyword so the execute fires when the condition fails to hold. The
|
|
307
|
-
* `bodyNode` (typically `return 0`) exits the child MCFunction immediately. When the
|
|
308
|
-
* condition holds, the chain doesn't fire and we fall through to the next check.
|
|
309
|
-
*/
|
|
310
|
-
private pushFailFastBranch = (
|
|
311
|
-
targetMCFunction: MCFunctionNode,
|
|
312
|
-
parsed: { preNodes: Node[]; conditionNode: ConditionNode },
|
|
313
|
-
bodyNode: Node,
|
|
314
|
-
) => {
|
|
315
|
-
for (const n of parsed.preNodes) {
|
|
316
|
-
targetMCFunction.body.push(n)
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
const condStr = parsed.conditionNode.getValue(true)
|
|
320
|
-
const match = condStr.match(/^(if|unless)\s+([\s\S]+)$/)
|
|
321
|
-
if (!match) {
|
|
322
|
-
throw new Error(`OrTransformationVisitor: unexpected condition getValue() shape: ${condStr}`)
|
|
323
|
-
}
|
|
324
|
-
// Flip the leading keyword so the execute fires on failure rather than success.
|
|
325
|
-
const flippedKeyword = match[1] === 'if' ? 'unless' : 'if'
|
|
326
|
-
const condBody = match[2]
|
|
327
|
-
|
|
328
|
-
const executeNode = new ExecuteCommandNode(this.pack, [[flippedKeyword, condBody]], {
|
|
329
|
-
isSingleExecute: true,
|
|
330
|
-
body: [],
|
|
331
|
-
})
|
|
332
|
-
targetMCFunction.enterContext(executeNode, false)
|
|
333
|
-
executeNode.body = [bodyNode]
|
|
334
|
-
targetMCFunction.body.push(executeNode)
|
|
335
|
-
targetMCFunction.exitContext()
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
parseNotNode = (node: NotNode, parentMCFunction?: MCFunctionNode): { preNodes: Node[]; conditionNode: ConditionNode } => {
|
|
339
|
-
const { preNodes, conditionNode } = this.parseConditionNode(node.condition, parentMCFunction)
|
|
64
|
+
parseNotNode = (node: NotNode): { preNodes: Node[]; conditionNode: ConditionNode } => {
|
|
65
|
+
const { preNodes, conditionNode } = this.parseConditionNode(node.condition)
|
|
340
66
|
return {
|
|
341
67
|
preNodes,
|
|
342
68
|
conditionNode: new NotNode(node.sandstoneCore, conditionNode),
|
package/src/sandstone.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type {
|
|
|
8
8
|
BlockStateDefinitionArguments,
|
|
9
9
|
ChatTypeClassArguments,
|
|
10
10
|
DamageTypeClassArguments,
|
|
11
|
+
DecoratedPotPatternClassArguments,
|
|
11
12
|
DialogClassArguments,
|
|
12
13
|
EnchantmentClassArguments,
|
|
13
14
|
EnchantmentProviderClassArguments,
|
|
@@ -27,6 +28,7 @@ import type {
|
|
|
27
28
|
PredicateClassArguments,
|
|
28
29
|
RecipeClassArguments,
|
|
29
30
|
ShaderClassArguments,
|
|
31
|
+
SlotSourceClassArguments,
|
|
30
32
|
SoundEventArguments,
|
|
31
33
|
SoundsIndexArguments,
|
|
32
34
|
SulfurCubeArchetypeClassArguments,
|
|
@@ -236,7 +238,7 @@ type PackNonMethodKeys =
|
|
|
236
238
|
| 'conditions' | 'objectives' | 'anonymousScoreId' | 'anonymousDataId' | 'constants' | 'tickedLoops'
|
|
237
239
|
| '__rootObjective' | 'packUid'
|
|
238
240
|
| 'reset' | 'appendNode' | 'initMCFunction' | 'save' | 'resourceToPath' | 'rootObjective'
|
|
239
|
-
| 'setupLantern' | 'dataPack' | 'resourcePack' | 'registerTickedCommands'
|
|
241
|
+
| 'setupLantern' | 'dataPack' | 'resourcePack' | 'registerTickedCommands' | 'Variant'
|
|
240
242
|
type PackMethodKeys = Exclude<keyof SandstonePack, PackNonMethodKeys>
|
|
241
243
|
|
|
242
244
|
// Creates a proxy that handles both callable methods and object-based properties.
|
|
@@ -293,6 +295,7 @@ export const {
|
|
|
293
295
|
BannerPattern,
|
|
294
296
|
ChatType,
|
|
295
297
|
DamageType,
|
|
298
|
+
DecoratedPotPattern,
|
|
296
299
|
Dialog,
|
|
297
300
|
Enchantment,
|
|
298
301
|
EnchantmentProvider,
|
|
@@ -302,6 +305,7 @@ export const {
|
|
|
302
305
|
LootTable,
|
|
303
306
|
Predicate,
|
|
304
307
|
Recipe,
|
|
308
|
+
SlotSource,
|
|
305
309
|
SulfurCubeArchetype,
|
|
306
310
|
Tag,
|
|
307
311
|
TestEnvironment,
|
|
@@ -311,7 +315,6 @@ export const {
|
|
|
311
315
|
TrialSpawner,
|
|
312
316
|
TrimMaterial,
|
|
313
317
|
TrimPattern,
|
|
314
|
-
Variant,
|
|
315
318
|
VillagerTrade,
|
|
316
319
|
WorldClock,
|
|
317
320
|
|
|
@@ -354,7 +357,40 @@ export const {
|
|
|
354
357
|
defaultNamespace,
|
|
355
358
|
} = packMethodsProxy
|
|
356
359
|
|
|
357
|
-
|
|
360
|
+
// Variant needs explicit type annotation due to complex generics
|
|
361
|
+
export const Variant: typeof sandstonePack.Variant = ((...args: unknown[]) =>
|
|
362
|
+
(sandstonePack.Variant as CallableFunction)(...args)) as typeof sandstonePack.Variant
|
|
363
|
+
|
|
364
|
+
// Explicit re-export (not `export *`) so the library builder can hoist
|
|
365
|
+
// these as top-level imports in the bundled main. Wildcard re-exports
|
|
366
|
+
// make it impossible for the bundler to know which names need to be
|
|
367
|
+
// imported into the bundled main's scope.
|
|
368
|
+
export {
|
|
369
|
+
NBTAnyValue,
|
|
370
|
+
NBTByte,
|
|
371
|
+
NBTByteArray,
|
|
372
|
+
NBTClass,
|
|
373
|
+
NBTDouble,
|
|
374
|
+
NBTFloat,
|
|
375
|
+
NBTInt,
|
|
376
|
+
NBTIntArray,
|
|
377
|
+
NBTList,
|
|
378
|
+
NBTLong,
|
|
379
|
+
NBTLongArray,
|
|
380
|
+
NBTPrimitive,
|
|
381
|
+
NBTRange,
|
|
382
|
+
NBTShort,
|
|
383
|
+
NBTString,
|
|
384
|
+
NBTTypedArray,
|
|
385
|
+
NotNBT,
|
|
386
|
+
ResolvedNBT,
|
|
387
|
+
type NBTAllArrays,
|
|
388
|
+
type NBTAllNumberClasses,
|
|
389
|
+
type NBTAllNumbers,
|
|
390
|
+
type NBTAllPrimitives,
|
|
391
|
+
type NBTAllValues,
|
|
392
|
+
type NBTSimpleClasses,
|
|
393
|
+
} from './variables/nbt/NBTs'
|
|
358
394
|
|
|
359
395
|
export type { Condition } from './flow'
|
|
360
396
|
export {
|
|
@@ -376,6 +412,7 @@ export {
|
|
|
376
412
|
BannerPatternClass,
|
|
377
413
|
ChatTypeClass,
|
|
378
414
|
DamageTypeClass,
|
|
415
|
+
DecoratedPotPatternClass,
|
|
379
416
|
DialogClass,
|
|
380
417
|
EnchantmentClass,
|
|
381
418
|
EnchantmentProviderClass,
|
|
@@ -385,6 +422,7 @@ export {
|
|
|
385
422
|
LootTableClass,
|
|
386
423
|
PredicateClass,
|
|
387
424
|
RecipeClass,
|
|
425
|
+
SlotSourceClass,
|
|
388
426
|
StructureClass,
|
|
389
427
|
SulfurCubeArchetypeClass,
|
|
390
428
|
TagClass,
|
|
@@ -667,6 +705,11 @@ type ContentStrategy =
|
|
|
667
705
|
* Will override the defined `default` strategy.
|
|
668
706
|
*/
|
|
669
707
|
| ContentStrategyKind<'recipe', NonNullable<RecipeClassArguments['onConflict']>>
|
|
708
|
+
/**
|
|
709
|
+
* The conflict strategy to use for Slot sources.
|
|
710
|
+
* Will override the defined `default` strategy.
|
|
711
|
+
*/
|
|
712
|
+
| ContentStrategyKind<'slot_source', NonNullable<SlotSourceClassArguments['onConflict']>>
|
|
670
713
|
/**
|
|
671
714
|
* The conflict strategy to use for Sulfur cube archetypes.
|
|
672
715
|
* Will override the defined `default` strategy.
|
|
@@ -702,6 +745,11 @@ type ContentStrategy =
|
|
|
702
745
|
* Will override the defined `default` strategy.
|
|
703
746
|
*/
|
|
704
747
|
| ContentStrategyKind<'chat_type', NonNullable<ChatTypeClassArguments['onConflict']>>
|
|
748
|
+
/**
|
|
749
|
+
* The conflict strategy to use for Decorated pot patterns.
|
|
750
|
+
* Will override the defined `default` strategy.
|
|
751
|
+
*/
|
|
752
|
+
| ContentStrategyKind<'decorated_pot_pattern', NonNullable<DecoratedPotPatternClassArguments['onConflict']>>
|
|
705
753
|
/**
|
|
706
754
|
* The conflict strategy to use for Dialogs.
|
|
707
755
|
* Will override the defined `default` strategy.
|
|
@@ -828,6 +876,11 @@ type ContentStrategy =
|
|
|
828
876
|
* Will override the defined `default` strategy.
|
|
829
877
|
*/
|
|
830
878
|
| ContentStrategyKind<'shader', NonNullable<ShaderClassArguments['onConflict']>>
|
|
879
|
+
/**
|
|
880
|
+
* The conflict strategy to use for SoundsIndex.
|
|
881
|
+
* Will override the defined `default` strategy.
|
|
882
|
+
*/
|
|
883
|
+
| ContentStrategyKind<'sounds', NonNullable<SoundsIndexArguments['onConflict']>>
|
|
831
884
|
/**
|
|
832
885
|
* The conflict strategy to use for Waypoint styles.
|
|
833
886
|
* Will override the defined `default` strategy.
|
package/src/utils.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { JSONTextComponent } from 'sandstone/arguments/jsonTextComponent'
|
|
2
|
-
import type { Node } from 'sandstone/core'
|
|
3
2
|
import type { ConditionNode } from '../flow'
|
|
4
3
|
import type { SelectorClass } from './Selector'
|
|
5
4
|
import type { NBTSerializable } from 'sandstone/arguments'
|
|
@@ -25,15 +24,6 @@ export class ConditionClass {
|
|
|
25
24
|
*/
|
|
26
25
|
declare readonly __conditionClassBrand: true
|
|
27
26
|
|
|
28
|
-
/**
|
|
29
|
-
* Optional commands that must run before this condition's predicate is evaluated.
|
|
30
|
-
* Conditions that emit side-effect commands at construction (e.g. `data.equals`
|
|
31
|
-
* building `execute store result ...`) capture them here so the visitor pass can
|
|
32
|
-
* re-emit them at the right location — inline before the IfNode, or inside the
|
|
33
|
-
* child MCFunction when AND/OR extracts. Optional; pure predicates leave it unset.
|
|
34
|
-
*/
|
|
35
|
-
preNodes?: Node[]
|
|
36
|
-
|
|
37
27
|
/**
|
|
38
28
|
* @internal
|
|
39
29
|
*/
|