package com.r3944realms.modernlifepatch.content.item;

import com.r3944realms.modernlifepatch.ModernLifePatch;
import com.r3944realms.modernlifepatch.content.blocks.ModBlocks;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;

import java.util.Collection;
import java.util.function.Supplier;

public class ModItems {
    private static final DeferredRegister<Item> ITEMS
            = DeferredRegister.create(ForgeRegistries.ITEMS, ModernLifePatch.MOD_ID);
    public static final RegistryObject<BlockItem> MIRROR_ITEM = ModBlocks.registerBlockItem("mirror", ModBlocks.MIRROR);
    public static final RegistryObject<BlockItem> TALL_MIRROR_ITEM = ModBlocks.registerBlockItem("tall_mirror", ModBlocks.TALL_MIRROR);
    public static final RegistryObject<BlockItem> LARGE_MIRROR_ITEM = ModBlocks.registerBlockItem("large_mirror", ModBlocks.LARGE_MIRROR);
    public static final RegistryObject<BlockItem> MASSIVE_MIRROR_ITEM = ModBlocks.registerBlockItem("massive_mirror", ModBlocks.MASSIVE_MIRROR);
    //BARRIER_ITEM
    public static final RegistryObject<BlockItem> LIGHT_GRAY_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("light_gray_concrete_barrier", ModBlocks.LIGHT_GRAY_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> WHITE_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("white_concrete_barrier", ModBlocks.WHITE_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> ORANGE_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("orange_concrete_barrier", ModBlocks.ORANGE_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> MAGENTA_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("magenta_concrete_barrier", ModBlocks.MAGENTA_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> LIGHT_BLUE_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("light_blue_concrete_barrier", ModBlocks.LIGHT_BLUE_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> YELLOW_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("yellow_concrete_barrier", ModBlocks.YELLOW_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> LIME_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("lime_concrete_barrier", ModBlocks.LIME_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> PINK_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("pink_concrete_barrier", ModBlocks.PINK_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> GRAY_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("gray_concrete_barrier", ModBlocks.GRAY_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> CYAN_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("cyan_concrete_barrier", ModBlocks.CYAN_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> PURPLE_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("purple_concrete_barrier", ModBlocks.PURPLE_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> BLUE_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("blue_concrete_barrier", ModBlocks.BLUE_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> BROWN_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("brown_concrete_barrier", ModBlocks.BROWN_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> GREEN_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("green_concrete_barrier", ModBlocks.GREEN_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> RED_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("red_concrete_barrier", ModBlocks.RED_CONCRETE_BARRIER);
    public static final RegistryObject<BlockItem> BLACK_CONCRETE_BARRIER_ITEM = ModBlocks.registerBlockItem("black_concrete_barrier", ModBlocks.BLACK_CONCRETE_BARRIER);
    //NUMBER
    public static final RegistryObject<BlockItem> NULL_BLOCK_ITEM = ModBlocks.registerBlockItem("null_block", ModBlocks.NULL_BLOCK);
    public static final RegistryObject<BlockItem> ONE_BLOCK_ITEM = ModBlocks.registerBlockItem("one_block", ModBlocks.ONE_BLOCK);
    public static final RegistryObject<BlockItem> TWO_BLOCK_ITEM = ModBlocks.registerBlockItem("two_block", ModBlocks.TWO_BLOCK);
    public static final RegistryObject<BlockItem> THREE_BLOCK_ITEM = ModBlocks.registerBlockItem("three_block", ModBlocks.THREE_BLOCK);
    public static final RegistryObject<BlockItem> FOUR_BLOCK_ITEM = ModBlocks.registerBlockItem("four_block", ModBlocks.FOUR_BLOCK);
    public static final RegistryObject<BlockItem> FIVE_BLOCK_ITEM = ModBlocks.registerBlockItem("five_block", ModBlocks.FIVE_BLOCK);
    public static final RegistryObject<BlockItem> SIX_BLOCK_ITEM = ModBlocks.registerBlockItem("six_block", ModBlocks.SIX_BLOCK);
    public static final RegistryObject<BlockItem> SEVEN_BLOCK_ITEM = ModBlocks.registerBlockItem("seven_block", ModBlocks.SEVEN_BLOCK);
    public static final RegistryObject<BlockItem> EIGHT_BLOCK_ITEM = ModBlocks.registerBlockItem("eight_block", ModBlocks.EIGHT_BLOCK);
    public static final RegistryObject<BlockItem> NINE_BLOCK_ITEM = ModBlocks.registerBlockItem("nine_block", ModBlocks.NINE_BLOCK);
    public static final RegistryObject<BlockItem> ZERO_BLOCK_ITEM = ModBlocks.registerBlockItem("zero_block", ModBlocks.ZERO_BLOCK);
    public static RegistryObject<BlockItem> register(String name, Supplier<? extends BlockItem> sup) {
        return ITEMS.register(name, sup);
    }
    public static Collection<RegistryObject<Item>> getEntries() {
        return ITEMS.getEntries();
    }
    public static void register(IEventBus bus) {
        ITEMS.register(bus);
    }

}
