package com.r3944realms.modernlifepatch.datagen.provider;

import com.dairymoose.modernlife.core.CustomBlocks;
import com.r3944realms.modernlifepatch.ModernLifePatch;
import com.r3944realms.modernlifepatch.content.item.ModItems;
import com.r3944realms.modernlifepatch.content.tag.ModTags;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.data.tags.ItemTagsProvider;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.common.data.ExistingFileHelper;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.concurrent.CompletableFuture;

public class ModItemTagProvider extends ItemTagsProvider {


    public ModItemTagProvider(PackOutput pOutput, CompletableFuture<HolderLookup.Provider> pLookupProvider, CompletableFuture<TagLookup<Block>> pBlockTags, @Nullable ExistingFileHelper existingFileHelper) {
        super(pOutput, pLookupProvider, pBlockTags, ModernLifePatch.MOD_ID, existingFileHelper);
    }


    @Override
    protected void addTags(HolderLookup.@NotNull Provider pProvider) {
        //BATHROOM
        {
            this.tag(ModTags.Items.BATHROOM)
                    .add(
                            CustomBlocks.ITEM_MIRROR.get(),
                            CustomBlocks.ITEM_TALL_MIRROR.get(),
                            CustomBlocks.ITEM_LARGE_MIRROR.get(),
                            CustomBlocks.ITEM_MASSIVE_MIRROR.get(),
                            ModItems.MIRROR_ITEM.get(),
                            ModItems.TALL_MIRROR_ITEM.get(),
                            ModItems.LARGE_MIRROR_ITEM.get(),
                            ModItems.MASSIVE_MIRROR_ITEM.get(),
                            CustomBlocks.ITEM_SHOWER_HEAD.get(),
                            CustomBlocks.ITEM_BATHROOM_CERAMIC_TILE.get(),
                            CustomBlocks.ITEM_DRYER.get(),
                            CustomBlocks.ITEM_BATHTUB.get()
                    );
        }
        //BEDCHAMBER
        {
            this.tag(ModTags.Items.BEDCHAMBER)
                    .add(
                            CustomBlocks.ITEM_ACACIA_NIGHT_STAND.get(),
                            CustomBlocks.ITEM_BIRCH_NIGHT_STAND.get(),
                            CustomBlocks.ITEM_CRIMSON_NIGHT_STAND.get(),
                            CustomBlocks.ITEM_DARK_OAK_NIGHT_STAND.get(),
                            CustomBlocks.ITEM_JUNGLE_NIGHT_STAND.get(),
                            CustomBlocks.ITEM_OAK_NIGHT_STAND.get(),
                            CustomBlocks.ITEM_SPRUCE_NIGHT_STAND.get(),
                            CustomBlocks.ITEM_WARPED_NIGHT_STAND.get(),
                            CustomBlocks.ITEM_ALARM_CLOCK.get(),
                            CustomBlocks.ITEM_DELUXE_BED.get()
                    );
        }
        //DOOR
        {
            this.tag(ModTags.Items.DOOR)
                    .add(
                            CustomBlocks.ITEM_ACACIA_GLASS_DOOR.get(),
                            CustomBlocks.ITEM_MODERN_WHITE_DOOR.get(),
                            CustomBlocks.ITEM_BIRCH_GLASS_DOOR.get(),
                            CustomBlocks.ITEM_CRIMSON_GLASS_DOOR.get(),
                            CustomBlocks.ITEM_DARK_OAK_GLASS_DOOR.get(),
                            CustomBlocks.ITEM_GLASS_DOOR.get(),
                            CustomBlocks.ITEM_IRON_GLASS_DOOR.get(),
                            CustomBlocks.ITEM_JUNGLE_GLASS_DOOR.get(),
                            CustomBlocks.ITEM_OAK_GLASS_DOOR.get(),
                            CustomBlocks.ITEM_SPRUCE_GLASS_DOOR.get(),
                            CustomBlocks.ITEM_WARPED_GLASS_DOOR.get(),
                            CustomBlocks.ITEM_JAIL_DOOR.get(),
                            CustomBlocks.ITEM_GLASS_TRAPDOOR.get(),
                            CustomBlocks.ITEM_GLASS_ACACIA_TRAPDOOR.get(),
                            CustomBlocks.ITEM_GLASS_BIRCH_TRAPDOOR.get(),
                            CustomBlocks.ITEM_GLASS_CRIMSON_TRAPDOOR.get(),
                            CustomBlocks.ITEM_GLASS_DARK_OAK_TRAPDOOR.get(),
                            CustomBlocks.ITEM_GLASS_IRON_TRAPDOOR.get(),
                            CustomBlocks.ITEM_GLASS_JUNGLE_TRAPDOOR.get(),
                            CustomBlocks.ITEM_GLASS_OAK_TRAPDOOR.get(),
                            CustomBlocks.ITEM_GLASS_SPRUCE_TRAPDOOR.get(),
                            CustomBlocks.ITEM_GLASS_WARPED_TRAPDOOR.get()
                    );
        }
        //GENERAL
        {
            this.tag(ModTags.Items.GENERAL)
                    .add(
                            CustomBlocks.ITEM_MONITOR.get(),
                            CustomBlocks.ITEM_DUAL_MONITOR.get(),
                            CustomBlocks.ITEM_RADIATOR.get(),
                            CustomBlocks.ITEM_CCTV_CAMERA.get(),
                            CustomBlocks.ITEM_CCTV_SCREEN.get(),
                            CustomBlocks.ITEM_GLASS_STAIRS.get(),
                            CustomBlocks.ITEM_METAL_CATWALK.get(),
                            CustomBlocks.ITEM_CEILING_FAN.get(),
                            CustomBlocks.ITEM_ELECTRICAL_OUTLET.get(),
                            CustomBlocks.ITEM_METAL_DUCT.get(),
                            CustomBlocks.ITEM_GLASS_PANEL.get(),
                            CustomBlocks.ITEM_TILE_LIGHT.get(),
                            CustomBlocks.ITEM_BEIGE_CERAMIC_TILE.get(),
                            CustomBlocks.ITEM_WHITE_CERAMIC_TILE.get(),
                            CustomBlocks.ITEM_BROWN_CERAMIC_TILE.get(),
                            CustomBlocks.ITEM_ROCKY_CERAMIC_TILE.get(),
                            CustomBlocks.ITEM_BLACK_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_BLUE_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_BROWN_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_CYAN_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_GRAY_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_GREEN_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_LIGHT_BLUE_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_LIGHT_GRAY_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_LIME_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_MAGENTA_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_ORANGE_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_PINK_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_PURPLE_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_RED_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_WHITE_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_YELLOW_PAINTED_DRYWALL.get(),
                            CustomBlocks.ITEM_TRASH_CAN.get(),
                            CustomBlocks.ITEM_WINCH.get(),
                            CustomBlocks.ITEM_WINCH_ANCHOR.get(),
                            CustomBlocks.ITEM_TURNTABLE.get(),
                            CustomBlocks.ITEM_SPEEDOMETER.get(),
                            CustomBlocks.ITEM_PAVED_ROAD.get(),
                            CustomBlocks.ITEM_BATTERY.get(),
                            CustomBlocks.ITEM_BICYCLE.get(),
                            CustomBlocks.ITEM_MOTORBOAT.get(),
                            CustomBlocks.ITEM_TIRE.get(),
                            CustomBlocks.ITEM_CHESS_BOARD.get(),
                            CustomBlocks.ITEM_COFFEE_MUG.get(),
                            CustomBlocks.ITEM_INSET_LIGHT.get(),
                            CustomBlocks.ITEM_MUSIC_STAND.get(),
                            CustomBlocks.ITEM_PRINTER.get(),
                            CustomBlocks.ITEM_PHOTOCOPIER.get(),
                            CustomBlocks.ITEM_CAMERA.get(),
                            CustomBlocks.ITEM_GAS_CAN.get(),
                            CustomBlocks.ITEM_CHESS_ROOK.get(),
                            CustomBlocks.ITEM_CHESS_BISHOP.get(),
                            CustomBlocks.ITEM_CHESS_PAWN.get(),
                            CustomBlocks.ITEM_CHESS_KNIGHT.get(),
                            CustomBlocks.ITEM_CHESS_KING.get(),
                            CustomBlocks.ITEM_CHESS_QUEEN.get(),
                            CustomBlocks.ITEM_CHESS_ROOK_W.get(),
                            CustomBlocks.ITEM_CHESS_BISHOP_W.get(),
                            CustomBlocks.ITEM_CHESS_PAWN_W.get(),
                            CustomBlocks.ITEM_CHESS_KNIGHT_W.get(),
                            CustomBlocks.ITEM_CHESS_KING_W.get(),
                            CustomBlocks.ITEM_CHESS_QUEEN_W.get(),
                            CustomBlocks.ITEM_MEMORY_CARD.get(),
                            CustomBlocks.ITEM_ROAD_MARKER.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_WHITE.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_WHITE_INCLINE.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_YELLOW.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_YELLOW_INCLINE.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_DOUBLE_YELLOW.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_DOUBLE_YELLOW_INCLINE.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_WHITE_SHOULDER_LEFT.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_WHITE_SHOULDER_LEFT_INCLINE.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_WHITE_SHOULDER_RIGHT.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_WHITE_SHOULDER_RIGHT_INCLINE.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_WHITE_CORNER_LEFT.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_WHITE_CORNER_LEFT_INCLINE.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_WHITE_CORNER_RIGHT.get(),
                            CustomBlocks.ITEM_ROAD_MARKER_WHITE_CORNER_RIGHT_INCLINE.get(),
                            ModItems.NULL_BLOCK_ITEM.get(),
                            ModItems.ONE_BLOCK_ITEM.get(),
                            ModItems.TWO_BLOCK_ITEM.get(),
                            ModItems.THREE_BLOCK_ITEM.get(),
                            ModItems.FOUR_BLOCK_ITEM.get(),
                            ModItems.FIVE_BLOCK_ITEM.get(),
                            ModItems.SIX_BLOCK_ITEM.get(),
                            ModItems.SEVEN_BLOCK_ITEM.get(),
                            ModItems.EIGHT_BLOCK_ITEM.get(),
                            ModItems.NINE_BLOCK_ITEM.get(),
                            ModItems.ZERO_BLOCK_ITEM.get()
                    );
        }
        //KITCHEN
        {
            this.tag(ModTags.Items.KITCHEN)
                    .add(
                            CustomBlocks.ITEM_KITCHEN_SINK.get(),
                            CustomBlocks.ITEM_ACACIA_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_BIRCH_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_DARK_OAK_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_CRIMSON_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_JUNGLE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_OAK_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_SPRUCE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_WARPED_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_COBBLESTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_STONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_STONE_BRICKS_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_CRACKED_STONE_BRICKS_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_MOSSY_STONE_BRICKS_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_CHISELED_STONE_BRICKS_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_CLAY_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_SAND_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_RED_SAND_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_SMOOTH_STONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_GRAVEL_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_GRANITE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_POLISHED_GRANITE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_DIORITE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_POLISHED_DIORITE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_OBSIDIAN_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_ANDESITE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_POLISHED_ANDESITE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_MOSSY_COBBLESTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_BRICKS_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_TERRACOTTA_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_SANDSTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_CHISELED_SANDSTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_CUT_SANDSTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_RED_SANDSTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_CHISELED_RED_SANDSTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_CUT_RED_SANDSTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_PRISMARINE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_PRISMARINE_BRICKS_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_DARK_PRISMARINE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_BLACKSTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_POLISHED_BLACKSTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_POLISHED_BLACKSTONE_BRICKS_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_CHISELED_POLISHED_BLACKSTONE_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_NETHERRACK_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_NETHER_BRICKS_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_CHISELED_NETHER_BRICKS_KITCHEN_CABINET.get(),
                            CustomBlocks.ITEM_ACACIA_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_BIRCH_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_CRIMSON_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_DARK_OAK_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_JUNGLE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_OAK_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_SPRUCE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_WARPED_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_COBBLESTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_STONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_STONE_BRICKS_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_CRACKED_STONE_BRICKS_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_MOSSY_STONE_BRICKS_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_CHISELED_STONE_BRICKS_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_CLAY_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_SAND_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_RED_SAND_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_SMOOTH_STONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_GRAVEL_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_GRANITE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_POLISHED_GRANITE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_DIORITE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_POLISHED_DIORITE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_OBSIDIAN_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_ANDESITE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_POLISHED_ANDESITE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_MOSSY_COBBLESTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_BRICKS_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_TERRACOTTA_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_SANDSTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_CHISELED_SANDSTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_CUT_SANDSTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_RED_SANDSTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_CHISELED_RED_SANDSTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_CUT_RED_SANDSTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_PRISMARINE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_PRISMARINE_BRICKS_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_DARK_PRISMARINE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_BLACKSTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_POLISHED_BLACKSTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_POLISHED_BLACKSTONE_BRICKS_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_CHISELED_POLISHED_BLACKSTONE_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_NETHERRACK_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_NETHER_BRICKS_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_CHISELED_NETHER_BRICKS_KITCHEN_DRAWER_CABINET.get(),
                            CustomBlocks.ITEM_HOT_WATER_HEATER.get(),
                            CustomBlocks.ITEM_MICROWAVE.get(),
                            CustomBlocks.ITEM_STOVE.get(),
                            CustomBlocks.ITEM_REFRIGERATOR.get()
                    );
        }
        //LOUNGE
        {
            this.tag(ModTags.Items.LOUNGE)
                    .add(
                            CustomBlocks.ITEM_AIR_CONDITIONER.get(),
                            CustomBlocks.ITEM_METAL_GRATE.get(),
                            CustomBlocks.ITEM_LIGHT_BULB.get(),
                            CustomBlocks.ITEM_ARROW_SLIT.get(),
                            CustomBlocks.ITEM_OLD_TV.get(),
                            CustomBlocks.ITEM_FLATSCREEN_TV.get()
                    );
        }
        //TOOL
        {
            this.tag(ModTags.Items.TOOL)
                    .add(
                            CustomBlocks.ITEM_BULLET_STRIP.get(),
                            CustomBlocks.ITEM_MAGAZINE.get(),
                            CustomBlocks.ITEM_EXTENDED_MAGAZINE.get(),
                            CustomBlocks.ITEM_GUITAR.get(),
                            CustomBlocks.ITEM_GUITAR_AMPLIFIER.get(),
                            CustomBlocks.ITEM_SEED_SPREADER.get(),
                            CustomBlocks.ITEM_POWER_TRANSMITTER.get(),
                            CustomBlocks.ITEM_POWER_RECEIVER.get(),
                            CustomBlocks.ITEM_HANDGUN.get(),
                            CustomBlocks.ITEM_FLASHLIGHT.get()
                    );
        }
        //OUTSIDE
        {
            this.tag(ModTags.Items.OUTSIDE)
                    .add(
                            CustomBlocks.ITEM_COBBLESTONE_RAMP.get(),
                            CustomBlocks.ITEM_STONE_RAMP.get(),
                            CustomBlocks.ITEM_STONE_BRICKS_RAMP.get(),
                            CustomBlocks.ITEM_CRACKED_STONE_BRICKS_RAMP.get(),
                            CustomBlocks.ITEM_MOSSY_STONE_BRICKS_RAMP.get(),
                            CustomBlocks.ITEM_CHISELED_STONE_BRICKS_RAMP.get(),
                            CustomBlocks.ITEM_CLAY_RAMP.get(),
                            CustomBlocks.ITEM_SAND_RAMP.get(),
                            CustomBlocks.ITEM_RED_SAND_RAMP.get(),
                            CustomBlocks.ITEM_SMOOTH_STONE_RAMP.get(),
                            CustomBlocks.ITEM_DIRT_RAMP.get(),
                            CustomBlocks.ITEM_DEEPSLATE_RAMP.get(),
                            CustomBlocks.ITEM_COBBLED_DEEPSLATE_RAMP.get(),
                            CustomBlocks.ITEM_QUARTZ_RAMP.get(),
                            CustomBlocks.ITEM_SMOOTH_QUARTZ_RAMP.get(),
                            CustomBlocks.ITEM_CHISELED_QUARTZ_RAMP.get(),
                            CustomBlocks.ITEM_QUARTZ_BRICKS_RAMP.get(),
                            CustomBlocks.ITEM_QUARTZ_PILLAR_RAMP.get(),
                            CustomBlocks.ITEM_GLASS_RAMP.get(),
                            CustomBlocks.ITEM_ACACIA_LOG_RAMP.get(),
                            CustomBlocks.ITEM_STRIPPED_ACACIA_LOG_RAMP.get(),
                            CustomBlocks.ITEM_BIRCH_LOG_RAMP.get(),
                            CustomBlocks.ITEM_STRIPPED_BIRCH_LOG_RAMP.get(),
                            CustomBlocks.ITEM_CRIMSON_LOG_RAMP.get(),
                            CustomBlocks.ITEM_STRIPPED_CRIMSON_LOG_RAMP.get(),
                            CustomBlocks.ITEM_DARK_OAK_LOG_RAMP.get(),
                            CustomBlocks.ITEM_STRIPPED_DARK_OAK_LOG_RAMP.get(),
                            CustomBlocks.ITEM_JUNGLE_LOG_RAMP.get(),
                            CustomBlocks.ITEM_STRIPPED_JUNGLE_LOG_RAMP.get(),
                            CustomBlocks.ITEM_OAK_LOG_RAMP.get(),
                            CustomBlocks.ITEM_STRIPPED_OAK_LOG_RAMP.get(),
                            CustomBlocks.ITEM_SPRUCE_LOG_RAMP.get(),
                            CustomBlocks.ITEM_STRIPPED_SPRUCE_LOG_RAMP.get(),
                            CustomBlocks.ITEM_WARPED_LOG_RAMP.get(),
                            CustomBlocks.ITEM_STRIPPED_WARPED_LOG_RAMP.get(),
                            CustomBlocks.ITEM_GRAVEL_RAMP.get(),
                            CustomBlocks.ITEM_GRANITE_RAMP.get(),
                            CustomBlocks.ITEM_POLISHED_GRANITE_RAMP.get(),
                            CustomBlocks.ITEM_DIORITE_RAMP.get(),
                            CustomBlocks.ITEM_POLISHED_DIORITE_RAMP.get(),
                            CustomBlocks.ITEM_OBSIDIAN_RAMP.get(),
                            CustomBlocks.ITEM_ANDESITE_RAMP.get(),
                            CustomBlocks.ITEM_POLISHED_ANDESITE_RAMP.get(),
                            CustomBlocks.ITEM_MOSSY_COBBLESTONE_RAMP.get(),
                            CustomBlocks.ITEM_BRICKS_RAMP.get(),
                            CustomBlocks.ITEM_TERRACOTTA_RAMP.get(),
                            CustomBlocks.ITEM_SANDSTONE_RAMP.get(),
                            CustomBlocks.ITEM_CHISELED_SANDSTONE_RAMP.get(),
                            CustomBlocks.ITEM_CUT_SANDSTONE_RAMP.get(),
                            CustomBlocks.ITEM_RED_SANDSTONE_RAMP.get(),
                            CustomBlocks.ITEM_CHISELED_RED_SANDSTONE_RAMP.get(),
                            CustomBlocks.ITEM_CUT_RED_SANDSTONE_RAMP.get(),
                            CustomBlocks.ITEM_PRISMARINE_RAMP.get(),
                            CustomBlocks.ITEM_PRISMARINE_BRICKS_RAMP.get(),
                            CustomBlocks.ITEM_DARK_PRISMARINE_RAMP.get(),
                            CustomBlocks.ITEM_BLACKSTONE_RAMP.get(),
                            CustomBlocks.ITEM_POLISHED_BLACKSTONE_RAMP.get(),
                            CustomBlocks.ITEM_POLISHED_BLACKSTONE_BRICKS_RAMP.get(),
                            CustomBlocks.ITEM_CHISELED_POLISHED_BLACKSTONE_RAMP.get(),
                            CustomBlocks.ITEM_NETHERRACK_RAMP.get(),
                            CustomBlocks.ITEM_NETHER_BRICKS_RAMP.get(),
                            CustomBlocks.ITEM_CHISELED_NETHER_BRICKS_RAMP.get(),
                            CustomBlocks.ITEM_ACACIA_RAMP.get(),
                            CustomBlocks.ITEM_BIRCH_RAMP.get(),
                            CustomBlocks.ITEM_CRIMSON_RAMP.get(),
                            CustomBlocks.ITEM_DARK_OAK_RAMP.get(),
                            CustomBlocks.ITEM_JUNGLE_RAMP.get(),
                            CustomBlocks.ITEM_OAK_RAMP.get(),
                            CustomBlocks.ITEM_SPRUCE_RAMP.get(),
                            CustomBlocks.ITEM_WARPED_RAMP.get(),
                            CustomBlocks.ITEM_PAVED_ROAD_RAMP.get(),
                            CustomBlocks.ITEM_PAVED_ROAD_RAMP.get(),
                            CustomBlocks.ITEM_JAIL_BARS.get(),
                            CustomBlocks.ITEM_ACACIA_BARRIER.get(),
                            CustomBlocks.ITEM_BIRCH_BARRIER.get(),
                            CustomBlocks.ITEM_CRIMSON_BARRIER.get(),
                            CustomBlocks.ITEM_DARK_OAK_BARRIER.get(),
                            CustomBlocks.ITEM_OAK_BARRIER.get(),
                            CustomBlocks.ITEM_SPRUCE_BARRIER.get(),
                            CustomBlocks.ITEM_WARPED_BARRIER.get(),
                            CustomBlocks.ITEM_COBBLESTONE_BARRIER.get(),
                            CustomBlocks.ITEM_STONE_BARRIER.get(),
                            CustomBlocks.ITEM_STONE_BRICKS_BARRIER.get(),
                            CustomBlocks.ITEM_CRACKED_STONE_BRICKS_BARRIER.get(),
                            CustomBlocks.ITEM_MOSSY_STONE_BRICKS_BARRIER.get(),
                            CustomBlocks.ITEM_CHISELED_STONE_BRICKS_BARRIER.get(),
                            CustomBlocks.ITEM_CLAY_BARRIER.get(),
                            CustomBlocks.ITEM_SAND_BARRIER.get(),
                            CustomBlocks.ITEM_RED_SAND_BARRIER.get(),
                            CustomBlocks.ITEM_SMOOTH_STONE_BARRIER.get(),
                            CustomBlocks.ITEM_GRAVEL_BARRIER.get(),
                            CustomBlocks.ITEM_GRANITE_BARRIER.get(),
                            CustomBlocks.ITEM_JUNGLE_BARRIER.get(),
                            CustomBlocks.ITEM_POLISHED_GRANITE_BARRIER.get(),
                            CustomBlocks.ITEM_DIORITE_BARRIER.get(),
                            CustomBlocks.ITEM_POLISHED_DIORITE_BARRIER.get(),
                            CustomBlocks.ITEM_OBSIDIAN_BARRIER.get(),
                            CustomBlocks.ITEM_ANDESITE_BARRIER.get(),
                            CustomBlocks.ITEM_POLISHED_ANDESITE_BARRIER.get(),
                            CustomBlocks.ITEM_MOSSY_COBBLESTONE_BARRIER.get(),
                            CustomBlocks.ITEM_BRICKS_BARRIER.get(),
                            CustomBlocks.ITEM_TERRACOTTA_BARRIER.get(),
                            CustomBlocks.ITEM_SANDSTONE_BARRIER.get(),
                            CustomBlocks.ITEM_CHISELED_SANDSTONE_BARRIER.get(),
                            CustomBlocks.ITEM_CUT_SANDSTONE_BARRIER.get(),
                            CustomBlocks.ITEM_RED_SANDSTONE_BARRIER.get(),
                            CustomBlocks.ITEM_CHISELED_RED_SANDSTONE_BARRIER.get(),
                            CustomBlocks.ITEM_CUT_RED_SANDSTONE_BARRIER.get(),
                            CustomBlocks.ITEM_PRISMARINE_BARRIER.get(),
                            CustomBlocks.ITEM_PRISMARINE_BRICKS_BARRIER.get(),
                            CustomBlocks.ITEM_BLACKSTONE_BARRIER.get(),
                            CustomBlocks.ITEM_POLISHED_BLACKSTONE_BARRIER.get(),
                            CustomBlocks.ITEM_POLISHED_BLACKSTONE_BRICKS_BARRIER.get(),
                            CustomBlocks.ITEM_CHISELED_POLISHED_BLACKSTONE_BARRIER.get(),
                            CustomBlocks.ITEM_NETHERRACK_BARRIER.get(),
                            CustomBlocks.ITEM_NETHER_BRICKS_BARRIER.get(),
                            CustomBlocks.ITEM_CHISELED_NETHER_BRICKS_BARRIER.get(),
                            CustomBlocks.ITEM_VINYL_SIDING.get(),
                            CustomBlocks.ITEM_RED_VINYL_SIDING.get(),
                            CustomBlocks.ITEM_GREEN_VINYL_SIDING.get(),
                            CustomBlocks.ITEM_BLUE_VINYL_SIDING.get(),
                            CustomBlocks.ITEM_GRAY_VINYL_SIDING.get(),
                            CustomBlocks.ITEM_FOUR_PANEL_WINDOW.get(),
                            CustomBlocks.ITEM_SIX_PANEL_WINDOW.get(),
                            CustomBlocks.ITEM_ACACIA_DECK.get(),
                            CustomBlocks.ITEM_BIRCH_DECK.get(),
                            CustomBlocks.ITEM_CRIMSON_DECK.get(),
                            CustomBlocks.ITEM_DARK_OAK_DECK.get(),
                            CustomBlocks.ITEM_DARK_OAK_DECK.get(),
                            CustomBlocks.ITEM_JUNGLE_DECK.get(),
                            CustomBlocks.ITEM_OAK_DECK.get(),
                            CustomBlocks.ITEM_SPRUCE_DECK.get(),
                            CustomBlocks.ITEM_WARPED_DECK.get(),
                            CustomBlocks.ITEM_FLOOR_MAT.get(),
                            CustomBlocks.ITEM_LANTERN_POST.get(),
                            CustomBlocks.ITEM_STREET_LIGHT.get(),
                            ModItems.WHITE_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.ORANGE_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.MAGENTA_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.LIGHT_BLUE_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.YELLOW_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.LIME_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.PINK_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.GRAY_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.LIGHT_GRAY_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.CYAN_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.PURPLE_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.BLUE_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.BROWN_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.GREEN_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.RED_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.BLACK_CONCRETE_BARRIER_ITEM.get(),
                            ModItems.QUARTZ_BLOCK_BARRIER.get(),
                            ModItems.SMOOTH_QUARTZ_BARRIER.get()
                    );
        }
        //SEAT
        {
            this.tag(ModTags.Items.SEAT)
                    .add(
                            CustomBlocks.ITEM_BLACK_SOFA.get(),
                            CustomBlocks.ITEM_BLUE_SOFA.get(),
                            CustomBlocks.ITEM_BROWN_SOFA.get(),
                            CustomBlocks.ITEM_CYAN_SOFA.get(),
                            CustomBlocks.ITEM_GRAY_SOFA.get(),
                            CustomBlocks.ITEM_GREEN_SOFA.get(),
                            CustomBlocks.ITEM_LIGHT_BLUE_SOFA.get(),
                            CustomBlocks.ITEM_LIGHT_GRAY_SOFA.get(),
                            CustomBlocks.ITEM_LIME_SOFA.get(),
                            CustomBlocks.ITEM_MAGENTA_SOFA.get(),
                            CustomBlocks.ITEM_ORANGE_SOFA.get(),
                            CustomBlocks.ITEM_PINK_SOFA.get(),
                            CustomBlocks.ITEM_PURPLE_SOFA.get(),
                            CustomBlocks.ITEM_RED_SOFA.get(),
                            CustomBlocks.ITEM_WHITE_SOFA.get(),
                            CustomBlocks.ITEM_YELLOW_SOFA.get(),
                            CustomBlocks.ITEM_ACACIA_MINI_STOOL.get(),
                            CustomBlocks.ITEM_BIRCH_MINI_STOOL.get(),
                            CustomBlocks.ITEM_CRIMSON_MINI_STOOL.get(),
                            CustomBlocks.ITEM_DARK_OAK_MINI_STOOL.get(),
                            CustomBlocks.ITEM_JUNGLE_MINI_STOOL.get(),
                            CustomBlocks.ITEM_OAK_MINI_STOOL.get(),
                            CustomBlocks.ITEM_SPRUCE_MINI_STOOL.get(),
                            CustomBlocks.ITEM_WARPED_MINI_STOOL.get(),
                            CustomBlocks.ITEM_ACACIA_CHAIR.get(),
                            CustomBlocks.ITEM_BIRCH_CHAIR.get(),
                            CustomBlocks.ITEM_CRIMSON_CHAIR.get(),
                            CustomBlocks.ITEM_DARK_OAK_CHAIR.get(),
                            CustomBlocks.ITEM_JUNGLE_CHAIR.get(),
                            CustomBlocks.ITEM_OAK_CHAIR.get(),
                            CustomBlocks.ITEM_SPRUCE_CHAIR.get(),
                            CustomBlocks.ITEM_WARPED_CHAIR.get()
                    );
        }
        //SHELF
        {
            this.tag(ModTags.Items.SHELF)
                    .add(
                            CustomBlocks.ITEM_MODERN_OAK_BOOKSHELF.get(),
                            CustomBlocks.ITEM_MODERN_ACACIA_BOOKSHELF.get(),
                            CustomBlocks.ITEM_MODERN_BIRCH_BOOKSHELF.get(),
                            CustomBlocks.ITEM_MODERN_DARK_OAK_BOOKSHELF.get(),
                            CustomBlocks.ITEM_MODERN_CRIMSON_BOOKSHELF.get(),
                            CustomBlocks.ITEM_MODERN_JUNGLE_BOOKSHELF.get(),
                            CustomBlocks.ITEM_MODERN_SPRUCE_BOOKSHELF.get(),
                            CustomBlocks.ITEM_MODERN_WARPED_BOOKSHELF.get(),
                            CustomBlocks.ITEM_ACACIA_WALL_SHELF.get(),
                            CustomBlocks.ITEM_BIRCH_WALL_SHELF.get(),
                            CustomBlocks.ITEM_CRIMSON_WALL_SHELF.get(),
                            CustomBlocks.ITEM_DARK_OAK_WALL_SHELF.get(),
                            CustomBlocks.ITEM_JUNGLE_WALL_SHELF.get(),
                            CustomBlocks.ITEM_OAK_WALL_SHELF.get(),
                            CustomBlocks.ITEM_SPRUCE_WALL_SHELF.get(),
                            CustomBlocks.ITEM_WARPED_WALL_SHELF.get(),
                            CustomBlocks.ITEM_DOUBLE_ACACIA_WALL_SHELF.get(),
                            CustomBlocks.ITEM_DOUBLE_BIRCH_WALL_SHELF.get(),
                            CustomBlocks.ITEM_DOUBLE_CRIMSON_WALL_SHELF.get(),
                            CustomBlocks.ITEM_DOUBLE_DARK_OAK_WALL_SHELF.get(),
                            CustomBlocks.ITEM_DOUBLE_JUNGLE_WALL_SHELF.get(),
                            CustomBlocks.ITEM_DOUBLE_OAK_WALL_SHELF.get(),
                            CustomBlocks.ITEM_DOUBLE_SPRUCE_WALL_SHELF.get(),
                            CustomBlocks.ITEM_DOUBLE_WARPED_WALL_SHELF.get()
                    );
        }
        //TABLE
        {
            this.tag(ModTags.Items.TABLE)
                    .add(
                            CustomBlocks.ITEM_ACACIA_ROUND_TABLE.get(),
                            CustomBlocks.ITEM_BIRCH_ROUND_TABLE.get(),
                            CustomBlocks.ITEM_BIRCH_ROUND_TABLE.get(),
                            CustomBlocks.ITEM_DARK_OAK_ROUND_TABLE.get(),
                            CustomBlocks.ITEM_CRIMSON_ROUND_TABLE.get(),
                            CustomBlocks.ITEM_OAK_ROUND_TABLE.get(),
                            CustomBlocks.ITEM_JUNGLE_ROUND_TABLE.get(),
                            CustomBlocks.ITEM_SPRUCE_ROUND_TABLE.get(),
                            CustomBlocks.ITEM_WARPED_ROUND_TABLE.get(),
                            CustomBlocks.ITEM_ACACIA_SMALL_TABLE.get(),
                            CustomBlocks.ITEM_BIRCH_SMALL_TABLE.get(),
                            CustomBlocks.ITEM_CRIMSON_SMALL_TABLE.get(),
                            CustomBlocks.ITEM_DARK_OAK_SMALL_TABLE.get(),
                            CustomBlocks.ITEM_JUNGLE_SMALL_TABLE.get(),
                            CustomBlocks.ITEM_OAK_SMALL_TABLE.get(),
                            CustomBlocks.ITEM_SPRUCE_SMALL_TABLE.get(),
                            CustomBlocks.ITEM_WARPED_SMALL_TABLE.get(),
                            CustomBlocks.ITEM_ACACIA_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_BIRCH_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_CRIMSON_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_DARK_OAK_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_JUNGLE_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_OAK_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_SPRUCE_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_WARPED_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_GLASS_ACACIA_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_GLASS_BIRCH_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_GLASS_CRIMSON_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_GLASS_DARK_OAK_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_GLASS_JUNGLE_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_GLASS_OAK_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_GLASS_SPRUCE_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_GLASS_WARPED_COFFEE_TABLE.get(),
                            CustomBlocks.ITEM_GLASS_SLAB.get(),
                            CustomBlocks.ITEM_ACACIA_PICNIC_TABLE.get(),
                            CustomBlocks.ITEM_BIRCH_PICNIC_TABLE.get(),
                            CustomBlocks.ITEM_CRIMSON_PICNIC_TABLE.get(),
                            CustomBlocks.ITEM_DARK_OAK_PICNIC_TABLE.get(),
                            CustomBlocks.ITEM_JUNGLE_PICNIC_TABLE.get(),
                            CustomBlocks.ITEM_OAK_PICNIC_TABLE.get(),
                            CustomBlocks.ITEM_SPRUCE_PICNIC_TABLE.get()
                    );
        }
    }
}
