
/*
 *    MCreator note: This file will be REGENERATED on each build.
 */
package net.mcreator.cawezsmantletostratus.init;

import net.neoforged.neoforge.registries.DeferredRegister;
import net.neoforged.neoforge.registries.DeferredItem;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.api.distmarker.OnlyIn;
import net.neoforged.api.distmarker.Dist;

import net.minecraft.world.level.block.Block;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.BlockItem;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.item.ItemProperties;

import net.mcreator.cawezsmantletostratus.item.WandOfLightItem;
import net.mcreator.cawezsmantletostratus.item.VerglasLabrysItem;
import net.mcreator.cawezsmantletostratus.item.StarforgedPickaxeItem;
import net.mcreator.cawezsmantletostratus.item.SolititeGemstoneItem;
import net.mcreator.cawezsmantletostratus.item.RougeAmuletItem;
import net.mcreator.cawezsmantletostratus.item.RoseAmuletItem;
import net.mcreator.cawezsmantletostratus.item.QueenBowItem;
import net.mcreator.cawezsmantletostratus.item.PhantomSwordItem;
import net.mcreator.cawezsmantletostratus.item.ObsidiliteGemstoneItem;
import net.mcreator.cawezsmantletostratus.item.JadeAmuletItem;
import net.mcreator.cawezsmantletostratus.item.HeavenArmorItem;
import net.mcreator.cawezsmantletostratus.item.HaeliumGemstoneItem;
import net.mcreator.cawezsmantletostratus.item.FortiteGemstoneItem;
import net.mcreator.cawezsmantletostratus.item.FinisherItem;
import net.mcreator.cawezsmantletostratus.item.EyeCanonItem;
import net.mcreator.cawezsmantletostratus.item.EssenceStormItem;
import net.mcreator.cawezsmantletostratus.item.EssenceOvergrowthItem;
import net.mcreator.cawezsmantletostratus.item.EssenceIchorItem;
import net.mcreator.cawezsmantletostratus.item.EssenceGrimstoneItem;
import net.mcreator.cawezsmantletostratus.item.EssenceGloomItem;
import net.mcreator.cawezsmantletostratus.item.EssenceAerisItem;
import net.mcreator.cawezsmantletostratus.item.EclarisStaffItem;
import net.mcreator.cawezsmantletostratus.item.DiurnalControllerItem;
import net.mcreator.cawezsmantletostratus.item.CobaltAmuletItem;
import net.mcreator.cawezsmantletostratus.item.CelerititeGemstoneItem;
import net.mcreator.cawezsmantletostratus.item.BuriedArmorItem;
import net.mcreator.cawezsmantletostratus.item.BloodStormItem;
import net.mcreator.cawezsmantletostratus.item.BloodOvergrowthItem;
import net.mcreator.cawezsmantletostratus.item.BloodIchorItem;
import net.mcreator.cawezsmantletostratus.item.BloodGrimstoneItem;
import net.mcreator.cawezsmantletostratus.item.BloodGloomItem;
import net.mcreator.cawezsmantletostratus.item.BloodAerisItem;
import net.mcreator.cawezsmantletostratus.item.BanisherItem;
import net.mcreator.cawezsmantletostratus.item.AzureAmulteItem;
import net.mcreator.cawezsmantletostratus.item.AminaliteGemstoneItem;
import net.mcreator.cawezsmantletostratus.item.AmberAmuletItem;
import net.mcreator.cawezsmantletostratus.item.AbsorberItem;
import net.mcreator.cawezsmantletostratus.CawezsMantleToStratusMod;

public class CawezsMantleToStratusModItems {
	public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(CawezsMantleToStratusMod.MODID);
	public static final DeferredItem<Item> BASE_GROUND = block(CawezsMantleToStratusModBlocks.BASE_GROUND);
	public static final DeferredItem<Item> HAELIUM = block(CawezsMantleToStratusModBlocks.HAELIUM);
	public static final DeferredItem<Item> AMINALITE = block(CawezsMantleToStratusModBlocks.AMINALITE);
	public static final DeferredItem<Item> SOLITITE = block(CawezsMantleToStratusModBlocks.SOLITITE);
	public static final DeferredItem<Item> FORTITE = block(CawezsMantleToStratusModBlocks.FORTITE);
	public static final DeferredItem<Item> OBSIDILITE = block(CawezsMantleToStratusModBlocks.OBSIDILITE);
	public static final DeferredItem<Item> CELERITITE = block(CawezsMantleToStratusModBlocks.CELERITITE);
	public static final DeferredItem<Item> HAELIUM_GEMSTONE = REGISTRY.register("haelium_gemstone", HaeliumGemstoneItem::new);
	public static final DeferredItem<Item> AMINALITE_GEMSTONE = REGISTRY.register("aminalite_gemstone", AminaliteGemstoneItem::new);
	public static final DeferredItem<Item> SOLITITE_GEMSTONE = REGISTRY.register("solitite_gemstone", SolititeGemstoneItem::new);
	public static final DeferredItem<Item> FORTITE_GEMSTONE = REGISTRY.register("fortite_gemstone", FortiteGemstoneItem::new);
	public static final DeferredItem<Item> CELERITITE_GEMSTONE = REGISTRY.register("celeritite_gemstone", CelerititeGemstoneItem::new);
	public static final DeferredItem<Item> OBSIDILITE_GEMSTONE = REGISTRY.register("obsidilite_gemstone", ObsidiliteGemstoneItem::new);
	public static final DeferredItem<Item> ESSENCE_AERIS = REGISTRY.register("essence_aeris", EssenceAerisItem::new);
	public static final DeferredItem<Item> ESSENCE_STORM = REGISTRY.register("essence_storm", EssenceStormItem::new);
	public static final DeferredItem<Item> ESSENCE_OVERGROWTH = REGISTRY.register("essence_overgrowth", EssenceOvergrowthItem::new);
	public static final DeferredItem<Item> ESSENCE_GRIMSTONE = REGISTRY.register("essence_grimstone", EssenceGrimstoneItem::new);
	public static final DeferredItem<Item> ESSENCE_GLOOM = REGISTRY.register("essence_gloom", EssenceGloomItem::new);
	public static final DeferredItem<Item> ESSENCE_ICHOR = REGISTRY.register("essence_ichor", EssenceIchorItem::new);
	public static final DeferredItem<Item> BLOOD_GLOOM = REGISTRY.register("blood_gloom", BloodGloomItem::new);
	public static final DeferredItem<Item> BLOOD_ICHOR = REGISTRY.register("blood_ichor", BloodIchorItem::new);
	public static final DeferredItem<Item> BLOOD_AERIS = REGISTRY.register("blood_aeris", BloodAerisItem::new);
	public static final DeferredItem<Item> BLOOD_GRIMSTONE = REGISTRY.register("blood_grimstone", BloodGrimstoneItem::new);
	public static final DeferredItem<Item> BLOOD_OVERGROWTH = REGISTRY.register("blood_overgrowth", BloodOvergrowthItem::new);
	public static final DeferredItem<Item> BLOOD_STORM = REGISTRY.register("blood_storm", BloodStormItem::new);
	public static final DeferredItem<Item> ROSE_AMULET = REGISTRY.register("rose_amulet", RoseAmuletItem::new);
	public static final DeferredItem<Item> ROUGE_AMULET = REGISTRY.register("rouge_amulet", RougeAmuletItem::new);
	public static final DeferredItem<Item> AMBER_AMULET = REGISTRY.register("amber_amulet", AmberAmuletItem::new);
	public static final DeferredItem<Item> COBALT_AMULET = REGISTRY.register("cobalt_amulet", CobaltAmuletItem::new);
	public static final DeferredItem<Item> AZURE_AMULTE = REGISTRY.register("azure_amulte", AzureAmulteItem::new);
	public static final DeferredItem<Item> JADE_AMULET = REGISTRY.register("jade_amulet", JadeAmuletItem::new);
	public static final DeferredItem<Item> BURIED_ARMOR_HELMET = REGISTRY.register("buried_armor_helmet", BuriedArmorItem.Helmet::new);
	public static final DeferredItem<Item> BURIED_ARMOR_CHESTPLATE = REGISTRY.register("buried_armor_chestplate", BuriedArmorItem.Chestplate::new);
	public static final DeferredItem<Item> BURIED_ARMOR_LEGGINGS = REGISTRY.register("buried_armor_leggings", BuriedArmorItem.Leggings::new);
	public static final DeferredItem<Item> BURIED_ARMOR_BOOTS = REGISTRY.register("buried_armor_boots", BuriedArmorItem.Boots::new);
	public static final DeferredItem<Item> HEAVEN_ARMOR_HELMET = REGISTRY.register("heaven_armor_helmet", HeavenArmorItem.Helmet::new);
	public static final DeferredItem<Item> HEAVEN_ARMOR_CHESTPLATE = REGISTRY.register("heaven_armor_chestplate", HeavenArmorItem.Chestplate::new);
	public static final DeferredItem<Item> HEAVEN_ARMOR_LEGGINGS = REGISTRY.register("heaven_armor_leggings", HeavenArmorItem.Leggings::new);
	public static final DeferredItem<Item> HEAVEN_ARMOR_BOOTS = REGISTRY.register("heaven_armor_boots", HeavenArmorItem.Boots::new);
	public static final DeferredItem<Item> VERGLAS_LABRYS = REGISTRY.register("verglas_labrys", VerglasLabrysItem::new);
	public static final DeferredItem<Item> FINISHER = REGISTRY.register("finisher", FinisherItem::new);
	public static final DeferredItem<Item> ECLARIS_STAFF = REGISTRY.register("eclaris_staff", EclarisStaffItem::new);
	public static final DeferredItem<Item> QUEEN_BOW = REGISTRY.register("queen_bow", QueenBowItem::new);
	public static final DeferredItem<Item> PHANTOM_SWORD = REGISTRY.register("phantom_sword", PhantomSwordItem::new);
	public static final DeferredItem<Item> BANISHER = REGISTRY.register("banisher", BanisherItem::new);
	public static final DeferredItem<Item> WAND_OF_LIGHT = REGISTRY.register("wand_of_light", WandOfLightItem::new);
	public static final DeferredItem<Item> STARFORGED_PICKAXE = REGISTRY.register("starforged_pickaxe", StarforgedPickaxeItem::new);
	public static final DeferredItem<Item> ABSORBER = REGISTRY.register("absorber", AbsorberItem::new);
	public static final DeferredItem<Item> EYE_CANON = REGISTRY.register("eye_canon", EyeCanonItem::new);
	public static final DeferredItem<Item> DIURNAL_CONTROLLER = REGISTRY.register("diurnal_controller", DiurnalControllerItem::new);

	// Start of user code block custom items
	// End of user code block custom items
	private static DeferredItem<Item> block(DeferredHolder<Block, Block> block) {
		return REGISTRY.register(block.getId().getPath(), () -> new BlockItem(block.get(), new Item.Properties()));
	}

	@EventBusSubscriber(bus = EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
	public static class ItemsClientSideHandler {
		@SubscribeEvent
		@OnlyIn(Dist.CLIENT)
		public static void clientLoad(FMLClientSetupEvent event) {
			event.enqueueWork(() -> {
				ItemProperties.register(PHANTOM_SWORD.get(), ResourceLocation.parse("minecraft:blocking"), ItemProperties.getProperty(new ItemStack(Items.SHIELD), ResourceLocation.parse("minecraft:blocking")));
			});
		}
	}
}
