package lv.enes.mc.eris_alchemy; import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Rarity; import org.quiltmc.loader.api.ModContainer; import org.quiltmc.qsl.base.api.entrypoint.ModInitializer; import org.quiltmc.qsl.item.setting.api.QuiltItemSettings; import org.quiltmc.qsl.tooltip.api.client.ItemTooltipCallback; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.text.DecimalFormat; public class ErisAlchemy implements ModInitializer { public static final String ID = "eris_alchemy"; public static final Logger LOGGER = LoggerFactory.getLogger(ID); public static final Item LOW_COVALENCE_DUST = new Item(new QuiltItemSettings().rarity(Rarity.COMMON)); public static final Item MEDIUM_COVALENCE_DUST = new Item(new QuiltItemSettings().rarity(Rarity.UNCOMMON)); public static final Item HIGH_COVALENCE_DUST = new Item(new QuiltItemSettings().rarity(Rarity.RARE)); public static final CreativeModeTab ITEM_GROUP = FabricItemGroup.builder() .icon(() -> new ItemStack(LOW_COVALENCE_DUST)) .title(Component.translatable("itemGroup.eris_alchemy.item_group")) .displayItems((context, entries) -> { entries.accept(LOW_COVALENCE_DUST); entries.accept(MEDIUM_COVALENCE_DUST); entries.accept(HIGH_COVALENCE_DUST); }) .build(); @Override public void onInitialize(ModContainer mod) { LOGGER.info("Hello World from {}!", mod.metadata().name()); if (!mod.metadata().id().equals(ID)) { throw new RuntimeException("Hardcoded mod ID doesn't match the configured one!"); } Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, new ResourceLocation(ID, "item_group"), ITEM_GROUP); Registry.register(BuiltInRegistries.ITEM, new ResourceLocation(ID, "low_covalence_dust"), LOW_COVALENCE_DUST); Registry.register(BuiltInRegistries.ITEM, new ResourceLocation(ID, "medium_covalence_dust"), MEDIUM_COVALENCE_DUST); Registry.register(BuiltInRegistries.ITEM, new ResourceLocation(ID, "high_covalence_dust"), HIGH_COVALENCE_DUST); Registry.register(BuiltInRegistries.RECIPE_SERIALIZER, CovalenceRepair.Serializer.ID, CovalenceRepair.Serializer.INSTANCE); var doubleFormat = new DecimalFormat("0"); doubleFormat.setMaximumFractionDigits(1); ItemTooltipCallback.EVENT.register((stack, player, context, tooltip) -> { var world = player == null ? null : player.level(); var emc = EMC.getInstance(world).get(stack.getItem()); emc.ifPresent(value -> tooltip.add(Component.literal("EMC %s".formatted(doubleFormat.format(value))))); }); } }