package lv.enes.mc.eris_alchemy; import lv.enes.mc.eris_alchemy.block.ErisAlchemyBlocks; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.Rarity; import net.minecraft.world.level.block.Block; import org.quiltmc.qsl.item.setting.api.QuiltItemSettings; import java.util.LinkedHashMap; import java.util.Map; import java.util.function.BiConsumer; public final class ErisAlchemyItems { private static final Map items = new LinkedHashMap<>(); public static final Item ALCHEMICAL_CHEST = register(ErisAlchemyBlocks.ALCHEMICAL_CHEST, new QuiltItemSettings().rarity(Rarity.RARE)); public static final Item LOW_COVALENCE_DUST = register("low_covalence_dust", new Item(new QuiltItemSettings().rarity(Rarity.COMMON))); @SuppressWarnings("unused") public static final Item MEDIUM_COVALENCE_DUST = register("medium_covalence_dust", new Item(new QuiltItemSettings().rarity(Rarity.UNCOMMON))); @SuppressWarnings("unused") public static final Item HIGH_COVALENCE_DUST = register("high_covalence_dust", new Item(new QuiltItemSettings().rarity(Rarity.RARE))); public static void consumeItems(BiConsumer consumer) { items.forEach(consumer); } private static BlockItem register(Block block, QuiltItemSettings settings) { return register(BuiltInRegistries.BLOCK.getKey(block), new BlockItem(block, settings)); } private static T register(String id, T item) { return register(new ResourceLocation(ErisAlchemy.ID, id), item); } private static T register(ResourceLocation id, T item) { items.putIfAbsent(id, item); return item; } private ErisAlchemyItems() {} }