1use crate :: shared_structs :: BlockStateData ; use crate :: structure_processor :: { PosRuleTestData , ProcessorRuleData , RuleBlockEntityModifierData , StructureProcessorAxis , StructureProcessorKind , StructureProcessorList , StructureProcessorListData , StructureProcessorListRegistry , StructureRuleTestData , } ; use steel_utils :: Identifier ; use steel_utils :: value_providers :: IntProvider ; use std :: sync :: { LazyLock , OnceLock } ; pub static ANCIENT_CITY_GENERIC_DEGRADATION : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("ancient_city_generic_degradation") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: BlockRot { rottable_blocks : Some (Identifier :: vanilla_static ("ancient_city_replaceable")) , integrity : 0.95f32 , } , StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("deepslate_bricks") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_deepslate_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("deepslate_tiles") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_deepslate_tiles") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("soul_lantern") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] } , StructureProcessorKind :: ProtectedBlocks { cannot_replace : Identifier :: vanilla_static ("features_cannot_replace") }] } , id : OnceLock :: new () , } }) ; pub static ANCIENT_CITY_START_DEGRADATION : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("ancient_city_start_degradation") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("deepslate_bricks") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_deepslate_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("deepslate_tiles") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_deepslate_tiles") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("soul_lantern") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] } , StructureProcessorKind :: ProtectedBlocks { cannot_replace : Identifier :: vanilla_static ("features_cannot_replace") }] } , id : OnceLock :: new () , } }) ; pub static ANCIENT_CITY_WALLS_DEGRADATION : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("ancient_city_walls_degradation") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: BlockRot { rottable_blocks : Some (Identifier :: vanilla_static ("ancient_city_replaceable")) , integrity : 0.95f32 , } , StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("deepslate_bricks") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_deepslate_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("deepslate_tiles") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_deepslate_tiles") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("deepslate_tile_slab") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("soul_lantern") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] } , StructureProcessorKind :: ProtectedBlocks { cannot_replace : Identifier :: vanilla_static ("features_cannot_replace") }] } , id : OnceLock :: new () , } }) ; pub static BASTION_GENERIC_DEGRADATION : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("bastion_generic_degradation") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.0001f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gold_block") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gilded_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.01f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("gilded_blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static BOTTOM_RAMPART : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("bottom_rampart") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("magma_block") , probability : 0.75f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , probability : 0.15f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gilded_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.01f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("gilded_blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static BRIDGE : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("bridge") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.0001f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static EMPTY : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("empty") , data : StructureProcessorListData { processors : vec ! [] } , id : OnceLock :: new () , } }) ; pub static ENTRANCE_REPLACEMENT : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("entrance_replacement") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("chiseled_polished_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gold_block") , probability : 0.6f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gilded_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.01f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("gilded_blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static FARM_DESERT : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("farm_desert") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("beetroots") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("melon_stem") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static FARM_PLAINS : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("farm_plains") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("carrots") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("potatoes") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("beetroots") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static FARM_SAVANNA : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("farm_savanna") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("melon_stem") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static FARM_SNOWY : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("farm_snowy") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("carrots") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.8f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("potatoes") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static FARM_TAIGA : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("farm_taiga") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("pumpkin_stem") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("potatoes") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static FOSSIL_COAL : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("fossil_coal") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: BlockRot { rottable_blocks : None , integrity : 0.1f32 , } , StructureProcessorKind :: ProtectedBlocks { cannot_replace : Identifier :: vanilla_static ("features_cannot_replace") }] } , id : OnceLock :: new () , } }) ; pub static FOSSIL_DIAMONDS : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("fossil_diamonds") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: BlockRot { rottable_blocks : None , integrity : 0.1f32 , } , StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("coal_ore") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("deepslate_diamond_ore") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] } , StructureProcessorKind :: ProtectedBlocks { cannot_replace : Identifier :: vanilla_static ("features_cannot_replace") }] } , id : OnceLock :: new () , } }) ; pub static FOSSIL_ROT : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("fossil_rot") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: BlockRot { rottable_blocks : None , integrity : 0.9f32 , } , StructureProcessorKind :: ProtectedBlocks { cannot_replace : Identifier :: vanilla_static ("features_cannot_replace") }] } , id : OnceLock :: new () , } }) ; pub static HIGH_RAMPART : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("high_rampart") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gold_block") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: AlwaysTrue , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AxisAlignedLinearPos { axis : StructureProcessorAxis :: Y , min_chance : 0f32 , max_chance : 0.05f32 , min_dist : 0i32 , max_dist : 100i32 , } , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gilded_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static HIGH_WALL : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("high_wall") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.01f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gilded_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static HOUSING : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("housing") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.0001f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gilded_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.01f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("gilded_blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static MOSSIFY_10_PERCENT : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("mossify_10_percent") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("cobblestone") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("mossy_cobblestone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static MOSSIFY_20_PERCENT : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("mossify_20_percent") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("cobblestone") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("mossy_cobblestone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static MOSSIFY_70_PERCENT : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("mossify_70_percent") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("cobblestone") , probability : 0.7f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("mossy_cobblestone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static OUTPOST_ROT : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("outpost_rot") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: BlockRot { rottable_blocks : None , integrity : 0.05f32 , }] } , id : OnceLock :: new () , } }) ; pub static RAMPART_DEGRADATION : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("rampart_degradation") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.4f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.01f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.0001f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.0001f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gold_block") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gilded_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.01f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("gilded_blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static ROOF : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("roof") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.15f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static SIDE_WALL_DEGRADATION : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("side_wall_degradation") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("chiseled_polished_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gold_block") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gilded_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.01f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("gilded_blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static STABLE_DEGRADATION : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("stable_degradation") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.0001f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gilded_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.01f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("gilded_blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static STREET_PLAINS : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("street_plains") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("dirt_path") } , location_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("water") } , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("oak_planks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("dirt_path") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("grass_block") , properties : std :: collections :: BTreeMap :: from ([("snowy" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("grass_block") } , location_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("water") } , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("water") , properties : std :: collections :: BTreeMap :: from ([("level" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("dirt") } , location_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("water") } , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("water") , properties : std :: collections :: BTreeMap :: from ([("level" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static STREET_SAVANNA : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("street_savanna") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("dirt_path") } , location_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("water") } , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("acacia_planks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("dirt_path") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("grass_block") , properties : std :: collections :: BTreeMap :: from ([("snowy" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("grass_block") } , location_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("water") } , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("water") , properties : std :: collections :: BTreeMap :: from ([("level" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("dirt") } , location_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("water") } , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("water") , properties : std :: collections :: BTreeMap :: from ([("level" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static STREET_SNOWY_OR_TAIGA : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("street_snowy_or_taiga") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("dirt_path") } , location_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("water") } , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("spruce_planks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("dirt_path") } , location_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("ice") } , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("spruce_planks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("dirt_path") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("grass_block") , properties : std :: collections :: BTreeMap :: from ([("snowy" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("grass_block") } , location_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("water") } , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("water") , properties : std :: collections :: BTreeMap :: from ([("level" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("dirt") } , location_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("water") } , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("water") , properties : std :: collections :: BTreeMap :: from ([("level" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static TRAIL_RUINS_HOUSES_ARCHAEOLOGY : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("trail_ruins_houses_archaeology") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gravel") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("dirt") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gravel") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("coarse_dirt") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("mud_bricks") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("packed_mud") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] } , StructureProcessorKind :: Capped { delegate : Box :: new (StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: TagMatch { tag : Identifier :: vanilla_static ("trail_ruins_replaceable") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("suspicious_gravel") , properties : std :: collections :: BTreeMap :: from ([("dusted" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: AppendLoot { loot_table : Identifier :: vanilla_static ("archaeology/trail_ruins_common") } , }] }) , limit : IntProvider :: Constant (6i32) } , StructureProcessorKind :: Capped { delegate : Box :: new (StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: TagMatch { tag : Identifier :: vanilla_static ("trail_ruins_replaceable") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("suspicious_gravel") , properties : std :: collections :: BTreeMap :: from ([("dusted" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: AppendLoot { loot_table : Identifier :: vanilla_static ("archaeology/trail_ruins_rare") } , }] }) , limit : IntProvider :: Constant (3i32) }] } , id : OnceLock :: new () , } }) ; pub static TRAIL_RUINS_ROADS_ARCHAEOLOGY : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("trail_ruins_roads_archaeology") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gravel") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("dirt") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gravel") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("coarse_dirt") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("mud_bricks") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("packed_mud") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] } , StructureProcessorKind :: Capped { delegate : Box :: new (StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: TagMatch { tag : Identifier :: vanilla_static ("trail_ruins_replaceable") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("suspicious_gravel") , properties : std :: collections :: BTreeMap :: from ([("dusted" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: AppendLoot { loot_table : Identifier :: vanilla_static ("archaeology/trail_ruins_common") } , }] }) , limit : IntProvider :: Constant (2i32) }] } , id : OnceLock :: new () , } }) ; pub static TRAIL_RUINS_TOWER_TOP_ARCHAEOLOGY : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("trail_ruins_tower_top_archaeology") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Capped { delegate : Box :: new (StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: TagMatch { tag : Identifier :: vanilla_static ("trail_ruins_replaceable") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("suspicious_gravel") , properties : std :: collections :: BTreeMap :: from ([("dusted" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: AppendLoot { loot_table : Identifier :: vanilla_static ("archaeology/trail_ruins_common") } , }] }) , limit : IntProvider :: Constant (2i32) }] } , id : OnceLock :: new () , } }) ; pub static TREASURE_ROOMS : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("treasure_rooms") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("polished_blackstone_bricks") , probability : 0.35f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("chiseled_polished_blackstone") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cracked_polished_blackstone_bricks") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("gilded_blackstone") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("blackstone") , probability : 0.01f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("gilded_blackstone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static TRIAL_CHAMBERS_COPPER_BULB_DEGRADATION : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("trial_chambers_copper_bulb_degradation") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("waxed_copper_bulb") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("waxed_oxidized_copper_bulb") , properties : std :: collections :: BTreeMap :: from ([("lit" . to_owned () , "true" . to_owned ()) , ("powered" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("waxed_copper_bulb") , probability : 0.33333334f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("waxed_weathered_copper_bulb") , properties : std :: collections :: BTreeMap :: from ([("lit" . to_owned () , "true" . to_owned ()) , ("powered" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("waxed_copper_bulb") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("waxed_exposed_copper_bulb") , properties : std :: collections :: BTreeMap :: from ([("lit" . to_owned () , "true" . to_owned ()) , ("powered" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] } , StructureProcessorKind :: ProtectedBlocks { cannot_replace : Identifier :: vanilla_static ("features_cannot_replace") }] } , id : OnceLock :: new () , } }) ; pub static ZOMBIE_DESERT : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("zombie_desert") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: TagMatch { tag : Identifier :: vanilla_static ("doors") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("torch") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("wall_torch") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("smooth_sandstone") , probability : 0.08f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("cut_sandstone") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("terracotta") , probability : 0.08f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("smooth_sandstone_stairs") , probability : 0.08f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("smooth_sandstone_slab") , probability : 0.08f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("beetroots") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("melon_stem") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static ZOMBIE_PLAINS : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("zombie_plains") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("cobblestone") , probability : 0.8f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("mossy_cobblestone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: TagMatch { tag : Identifier :: vanilla_static ("doors") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("torch") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("wall_torch") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("cobblestone") , probability : 0.07f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("mossy_cobblestone") , probability : 0.07f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("white_terracotta") , probability : 0.07f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("oak_log") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("oak_planks") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("oak_stairs") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("stripped_oak_log") , probability : 0.02f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("glass_pane") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockStateMatch { block_state : BlockStateData { name : Identifier :: vanilla_static ("glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "false" . to_owned ()) , ("north" . to_owned () , "true" . to_owned ()) , ("south" . to_owned () , "true" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "false" . to_owned ())]) , } } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("brown_stained_glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "false" . to_owned ()) , ("north" . to_owned () , "true" . to_owned ()) , ("south" . to_owned () , "true" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockStateMatch { block_state : BlockStateData { name : Identifier :: vanilla_static ("glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "true" . to_owned ()) , ("north" . to_owned () , "false" . to_owned ()) , ("south" . to_owned () , "false" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "true" . to_owned ())]) , } } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("brown_stained_glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "true" . to_owned ()) , ("north" . to_owned () , "false" . to_owned ()) , ("south" . to_owned () , "false" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "true" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("carrots") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("potatoes") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("beetroots") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static ZOMBIE_SAVANNA : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("zombie_savanna") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: TagMatch { tag : Identifier :: vanilla_static ("doors") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("torch") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("wall_torch") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("acacia_planks") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("acacia_stairs") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("acacia_log") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("acacia_wood") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("orange_terracotta") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("yellow_terracotta") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("red_terracotta") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("glass_pane") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockStateMatch { block_state : BlockStateData { name : Identifier :: vanilla_static ("glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "false" . to_owned ()) , ("north" . to_owned () , "true" . to_owned ()) , ("south" . to_owned () , "true" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "false" . to_owned ())]) , } } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("brown_stained_glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "false" . to_owned ()) , ("north" . to_owned () , "true" . to_owned ()) , ("south" . to_owned () , "true" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockStateMatch { block_state : BlockStateData { name : Identifier :: vanilla_static ("glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "true" . to_owned ()) , ("north" . to_owned () , "false" . to_owned ()) , ("south" . to_owned () , "false" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "true" . to_owned ())]) , } } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("brown_stained_glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "true" . to_owned ()) , ("north" . to_owned () , "false" . to_owned ()) , ("south" . to_owned () , "false" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "true" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("melon_stem") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static ZOMBIE_SNOWY : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("zombie_snowy") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: TagMatch { tag : Identifier :: vanilla_static ("doors") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("torch") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("wall_torch") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("lantern") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("spruce_planks") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("spruce_slab") , probability : 0.4f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("stripped_spruce_log") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("stripped_spruce_wood") , probability : 0.05f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("glass_pane") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockStateMatch { block_state : BlockStateData { name : Identifier :: vanilla_static ("glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "false" . to_owned ()) , ("north" . to_owned () , "true" . to_owned ()) , ("south" . to_owned () , "true" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "false" . to_owned ())]) , } } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("brown_stained_glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "false" . to_owned ()) , ("north" . to_owned () , "true" . to_owned ()) , ("south" . to_owned () , "true" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockStateMatch { block_state : BlockStateData { name : Identifier :: vanilla_static ("glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "true" . to_owned ()) , ("north" . to_owned () , "false" . to_owned ()) , ("south" . to_owned () , "false" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "true" . to_owned ())]) , } } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("brown_stained_glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "true" . to_owned ()) , ("north" . to_owned () , "false" . to_owned ()) , ("south" . to_owned () , "false" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "true" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.1f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("carrots") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.8f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("potatoes") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub static ZOMBIE_TAIGA : LazyLock < StructureProcessorList > = LazyLock :: new (|| { StructureProcessorList { key : Identifier :: vanilla_static ("zombie_taiga") , data : StructureProcessorListData { processors : vec ! [StructureProcessorKind :: Rule { rules : vec ! [ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("cobblestone") , probability : 0.8f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("mossy_cobblestone") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: TagMatch { tag : Identifier :: vanilla_static ("doors") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("torch") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("wall_torch") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("air") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockMatch { block : Identifier :: vanilla_static ("campfire") } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("campfire") , properties : std :: collections :: BTreeMap :: from ([("facing" . to_owned () , "north" . to_owned ()) , ("lit" . to_owned () , "false" . to_owned ()) , ("signal_fire" . to_owned () , "false" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("cobblestone") , probability : 0.08f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("spruce_log") , probability : 0.08f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("glass_pane") , probability : 0.5f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("cobweb") , properties : std :: collections :: BTreeMap :: new () , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockStateMatch { block_state : BlockStateData { name : Identifier :: vanilla_static ("glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "false" . to_owned ()) , ("north" . to_owned () , "true" . to_owned ()) , ("south" . to_owned () , "true" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "false" . to_owned ())]) , } } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("brown_stained_glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "false" . to_owned ()) , ("north" . to_owned () , "true" . to_owned ()) , ("south" . to_owned () , "true" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "false" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: BlockStateMatch { block_state : BlockStateData { name : Identifier :: vanilla_static ("glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "true" . to_owned ()) , ("north" . to_owned () , "false" . to_owned ()) , ("south" . to_owned () , "false" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "true" . to_owned ())]) , } } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("brown_stained_glass_pane") , properties : std :: collections :: BTreeMap :: from ([("east" . to_owned () , "true" . to_owned ()) , ("north" . to_owned () , "false" . to_owned ()) , ("south" . to_owned () , "false" . to_owned ()) , ("waterlogged" . to_owned () , "false" . to_owned ()) , ("west" . to_owned () , "true" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.3f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("pumpkin_stem") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , } , ProcessorRuleData { input_predicate : StructureRuleTestData :: RandomBlockMatch { block : Identifier :: vanilla_static ("wheat") , probability : 0.2f32 , } , location_predicate : StructureRuleTestData :: AlwaysTrue , position_predicate : PosRuleTestData :: AlwaysTrue , output_state : BlockStateData { name : Identifier :: vanilla_static ("potatoes") , properties : std :: collections :: BTreeMap :: from ([("age" . to_owned () , "0" . to_owned ())]) , } , block_entity_modifier : RuleBlockEntityModifierData :: Passthrough , }] }] } , id : OnceLock :: new () , } }) ; pub fn register_structure_processor_lists (registry : & mut StructureProcessorListRegistry) { registry . register (& ANCIENT_CITY_GENERIC_DEGRADATION) ; registry . register (& ANCIENT_CITY_START_DEGRADATION) ; registry . register (& ANCIENT_CITY_WALLS_DEGRADATION) ; registry . register (& BASTION_GENERIC_DEGRADATION) ; registry . register (& BOTTOM_RAMPART) ; registry . register (& BRIDGE) ; registry . register (& EMPTY) ; registry . register (& ENTRANCE_REPLACEMENT) ; registry . register (& FARM_DESERT) ; registry . register (& FARM_PLAINS) ; registry . register (& FARM_SAVANNA) ; registry . register (& FARM_SNOWY) ; registry . register (& FARM_TAIGA) ; registry . register (& FOSSIL_COAL) ; registry . register (& FOSSIL_DIAMONDS) ; registry . register (& FOSSIL_ROT) ; registry . register (& HIGH_RAMPART) ; registry . register (& HIGH_WALL) ; registry . register (& HOUSING) ; registry . register (& MOSSIFY_10_PERCENT) ; registry . register (& MOSSIFY_20_PERCENT) ; registry . register (& MOSSIFY_70_PERCENT) ; registry . register (& OUTPOST_ROT) ; registry . register (& RAMPART_DEGRADATION) ; registry . register (& ROOF) ; registry . register (& SIDE_WALL_DEGRADATION) ; registry . register (& STABLE_DEGRADATION) ; registry . register (& STREET_PLAINS) ; registry . register (& STREET_SAVANNA) ; registry . register (& STREET_SNOWY_OR_TAIGA) ; registry . register (& TRAIL_RUINS_HOUSES_ARCHAEOLOGY) ; registry . register (& TRAIL_RUINS_ROADS_ARCHAEOLOGY) ; registry . register (& TRAIL_RUINS_TOWER_TOP_ARCHAEOLOGY) ; registry . register (& TREASURE_ROOMS) ; registry . register (& TRIAL_CHAMBERS_COPPER_BULB_DEGRADATION) ; registry . register (& ZOMBIE_DESERT) ; registry . register (& ZOMBIE_PLAINS) ; registry . register (& ZOMBIE_SAVANNA) ; registry . register (& ZOMBIE_SNOWY) ; registry . register (& ZOMBIE_TAIGA) ; }