package net.minecraft.tags;

import net.minecraft.resources.ResourceLocation;
import java.util.Set;
import net.minecraft.world.level.block.Block;

public class BlockTags {
    private static final StaticTagHelper<Block> HELPER;
    public static final Tag.Named<Block> WOOL;
    public static final Tag.Named<Block> PLANKS;
    public static final Tag.Named<Block> STONE_BRICKS;
    public static final Tag.Named<Block> WOODEN_BUTTONS;
    public static final Tag.Named<Block> BUTTONS;
    public static final Tag.Named<Block> CARPETS;
    public static final Tag.Named<Block> WOODEN_DOORS;
    public static final Tag.Named<Block> WOODEN_STAIRS;
    public static final Tag.Named<Block> WOODEN_SLABS;
    public static final Tag.Named<Block> WOODEN_FENCES;
    public static final Tag.Named<Block> PRESSURE_PLATES;
    public static final Tag.Named<Block> WOODEN_PRESSURE_PLATES;
    public static final Tag.Named<Block> STONE_PRESSURE_PLATES;
    public static final Tag.Named<Block> WOODEN_TRAPDOORS;
    public static final Tag.Named<Block> DOORS;
    public static final Tag.Named<Block> SAPLINGS;
    public static final Tag.Named<Block> LOGS_THAT_BURN;
    public static final Tag.Named<Block> LOGS;
    public static final Tag.Named<Block> DARK_OAK_LOGS;
    public static final Tag.Named<Block> OAK_LOGS;
    public static final Tag.Named<Block> BIRCH_LOGS;
    public static final Tag.Named<Block> ACACIA_LOGS;
    public static final Tag.Named<Block> JUNGLE_LOGS;
    public static final Tag.Named<Block> SPRUCE_LOGS;
    public static final Tag.Named<Block> CRIMSON_STEMS;
    public static final Tag.Named<Block> WARPED_STEMS;
    public static final Tag.Named<Block> BANNERS;
    public static final Tag.Named<Block> SAND;
    public static final Tag.Named<Block> STAIRS;
    public static final Tag.Named<Block> SLABS;
    public static final Tag.Named<Block> WALLS;
    public static final Tag.Named<Block> ANVIL;
    public static final Tag.Named<Block> RAILS;
    public static final Tag.Named<Block> LEAVES;
    public static final Tag.Named<Block> TRAPDOORS;
    public static final Tag.Named<Block> SMALL_FLOWERS;
    public static final Tag.Named<Block> BEDS;
    public static final Tag.Named<Block> FENCES;
    public static final Tag.Named<Block> TALL_FLOWERS;
    public static final Tag.Named<Block> FLOWERS;
    public static final Tag.Named<Block> PIGLIN_REPELLENTS;
    public static final Tag.Named<Block> GOLD_ORES;
    public static final Tag.Named<Block> NON_FLAMMABLE_WOOD;
    public static final Tag.Named<Block> FLOWER_POTS;
    public static final Tag.Named<Block> ENDERMAN_HOLDABLE;
    public static final Tag.Named<Block> ICE;
    public static final Tag.Named<Block> VALID_SPAWN;
    public static final Tag.Named<Block> IMPERMEABLE;
    public static final Tag.Named<Block> UNDERWATER_BONEMEALS;
    public static final Tag.Named<Block> CORAL_BLOCKS;
    public static final Tag.Named<Block> WALL_CORALS;
    public static final Tag.Named<Block> CORAL_PLANTS;
    public static final Tag.Named<Block> CORALS;
    public static final Tag.Named<Block> BAMBOO_PLANTABLE_ON;
    public static final Tag.Named<Block> STANDING_SIGNS;
    public static final Tag.Named<Block> WALL_SIGNS;
    public static final Tag.Named<Block> SIGNS;
    public static final Tag.Named<Block> DRAGON_IMMUNE;
    public static final Tag.Named<Block> WITHER_IMMUNE;
    public static final Tag.Named<Block> WITHER_SUMMON_BASE_BLOCKS;
    public static final Tag.Named<Block> BEEHIVES;
    public static final Tag.Named<Block> CROPS;
    public static final Tag.Named<Block> BEE_GROWABLES;
    public static final Tag.Named<Block> PORTALS;
    public static final Tag.Named<Block> FIRE;
    public static final Tag.Named<Block> NYLIUM;
    public static final Tag.Named<Block> WART_BLOCKS;
    public static final Tag.Named<Block> BEACON_BASE_BLOCKS;
    public static final Tag.Named<Block> SOUL_SPEED_BLOCKS;
    public static final Tag.Named<Block> WALL_POST_OVERRIDE;
    public static final Tag.Named<Block> CLIMBABLE;
    public static final Tag.Named<Block> SHULKER_BOXES;
    public static final Tag.Named<Block> HOGLIN_REPELLENTS;
    public static final Tag.Named<Block> SOUL_FIRE_BASE_BLOCKS;
    public static final Tag.Named<Block> STRIDER_WARM_BLOCKS;
    public static final Tag.Named<Block> CAMPFIRES;
    public static final Tag.Named<Block> GUARDED_BY_PIGLINS;
    public static final Tag.Named<Block> PREVENT_MOB_SPAWNING_INSIDE;
    public static final Tag.Named<Block> FENCE_GATES;
    public static final Tag.Named<Block> UNSTABLE_BOTTOM_CENTER;
    public static final Tag.Named<Block> INFINIBURN_OVERWORLD;
    public static final Tag.Named<Block> INFINIBURN_NETHER;
    public static final Tag.Named<Block> INFINIBURN_END;
    
    private static Tag.Named<Block> bind(final String string) {
        return BlockTags.HELPER.bind(string);
    }
    
    public static void reset(final TagCollection<Block> adg) {
        BlockTags.HELPER.reset(adg);
    }
    
    public static void resetToEmpty() {
        BlockTags.HELPER.resetToEmpty();
    }
    
    public static TagCollection<Block> getAllTags() {
        return BlockTags.HELPER.getAllTags();
    }
    
    public static Set<ResourceLocation> getMissingTags(final TagCollection<Block> adg) {
        return BlockTags.HELPER.getMissingTags(adg);
    }
    
    static {
        HELPER = new StaticTagHelper<Block>();
        WOOL = bind("wool");
        PLANKS = bind("planks");
        STONE_BRICKS = bind("stone_bricks");
        WOODEN_BUTTONS = bind("wooden_buttons");
        BUTTONS = bind("buttons");
        CARPETS = bind("carpets");
        WOODEN_DOORS = bind("wooden_doors");
        WOODEN_STAIRS = bind("wooden_stairs");
        WOODEN_SLABS = bind("wooden_slabs");
        WOODEN_FENCES = bind("wooden_fences");
        PRESSURE_PLATES = bind("pressure_plates");
        WOODEN_PRESSURE_PLATES = bind("wooden_pressure_plates");
        STONE_PRESSURE_PLATES = bind("stone_pressure_plates");
        WOODEN_TRAPDOORS = bind("wooden_trapdoors");
        DOORS = bind("doors");
        SAPLINGS = bind("saplings");
        LOGS_THAT_BURN = bind("logs_that_burn");
        LOGS = bind("logs");
        DARK_OAK_LOGS = bind("dark_oak_logs");
        OAK_LOGS = bind("oak_logs");
        BIRCH_LOGS = bind("birch_logs");
        ACACIA_LOGS = bind("acacia_logs");
        JUNGLE_LOGS = bind("jungle_logs");
        SPRUCE_LOGS = bind("spruce_logs");
        CRIMSON_STEMS = bind("crimson_stems");
        WARPED_STEMS = bind("warped_stems");
        BANNERS = bind("banners");
        SAND = bind("sand");
        STAIRS = bind("stairs");
        SLABS = bind("slabs");
        WALLS = bind("walls");
        ANVIL = bind("anvil");
        RAILS = bind("rails");
        LEAVES = bind("leaves");
        TRAPDOORS = bind("trapdoors");
        SMALL_FLOWERS = bind("small_flowers");
        BEDS = bind("beds");
        FENCES = bind("fences");
        TALL_FLOWERS = bind("tall_flowers");
        FLOWERS = bind("flowers");
        PIGLIN_REPELLENTS = bind("piglin_repellents");
        GOLD_ORES = bind("gold_ores");
        NON_FLAMMABLE_WOOD = bind("non_flammable_wood");
        FLOWER_POTS = bind("flower_pots");
        ENDERMAN_HOLDABLE = bind("enderman_holdable");
        ICE = bind("ice");
        VALID_SPAWN = bind("valid_spawn");
        IMPERMEABLE = bind("impermeable");
        UNDERWATER_BONEMEALS = bind("underwater_bonemeals");
        CORAL_BLOCKS = bind("coral_blocks");
        WALL_CORALS = bind("wall_corals");
        CORAL_PLANTS = bind("coral_plants");
        CORALS = bind("corals");
        BAMBOO_PLANTABLE_ON = bind("bamboo_plantable_on");
        STANDING_SIGNS = bind("standing_signs");
        WALL_SIGNS = bind("wall_signs");
        SIGNS = bind("signs");
        DRAGON_IMMUNE = bind("dragon_immune");
        WITHER_IMMUNE = bind("wither_immune");
        WITHER_SUMMON_BASE_BLOCKS = bind("wither_summon_base_blocks");
        BEEHIVES = bind("beehives");
        CROPS = bind("crops");
        BEE_GROWABLES = bind("bee_growables");
        PORTALS = bind("portals");
        FIRE = bind("fire");
        NYLIUM = bind("nylium");
        WART_BLOCKS = bind("wart_blocks");
        BEACON_BASE_BLOCKS = bind("beacon_base_blocks");
        SOUL_SPEED_BLOCKS = bind("soul_speed_blocks");
        WALL_POST_OVERRIDE = bind("wall_post_override");
        CLIMBABLE = bind("climbable");
        SHULKER_BOXES = bind("shulker_boxes");
        HOGLIN_REPELLENTS = bind("hoglin_repellents");
        SOUL_FIRE_BASE_BLOCKS = bind("soul_fire_base_blocks");
        STRIDER_WARM_BLOCKS = bind("strider_warm_blocks");
        CAMPFIRES = bind("campfires");
        GUARDED_BY_PIGLINS = bind("guarded_by_piglins");
        PREVENT_MOB_SPAWNING_INSIDE = bind("prevent_mob_spawning_inside");
        FENCE_GATES = bind("fence_gates");
        UNSTABLE_BOTTOM_CENTER = bind("unstable_bottom_center");
        INFINIBURN_OVERWORLD = bind("infiniburn_overworld");
        INFINIBURN_NETHER = bind("infiniburn_nether");
        INFINIBURN_END = bind("infiniburn_end");
    }
}
