From 3d561d43e6cc1b3e90c56ba35e47ff5d3a4d91d0 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Mon, 8 Jan 2024 21:17:52 +0100 Subject: Replace ItemMixin.java with proper ItemTooltipCallback usage. --- .../java/lv/enes/mc/eris_alchemy/ErisAlchemy.java | 12 ++++++++ .../lv/enes/mc/eris_alchemy/mixin/ItemMixin.java | 32 --------------------- .../guide_book/en_us/entries/root/emc.json | 9 ++++++ .../eris_alchemy/textures/gui/question-mark.png | Bin 0 -> 196 bytes src/main/resources/eris_alchemy.mixins.json | 1 - 5 files changed, 21 insertions(+), 33 deletions(-) delete mode 100644 src/main/java/lv/enes/mc/eris_alchemy/mixin/ItemMixin.java create mode 100644 src/main/resources/assets/eris_alchemy/patchouli_books/guide_book/en_us/entries/root/emc.json create mode 100644 src/main/resources/assets/eris_alchemy/textures/gui/question-mark.png diff --git a/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemy.java b/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemy.java index a4368fc..fe7e40d 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemy.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemy.java @@ -12,9 +12,12 @@ 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); @@ -47,5 +50,14 @@ public class ErisAlchemy implements ModInitializer { 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))))); + }); } } diff --git a/src/main/java/lv/enes/mc/eris_alchemy/mixin/ItemMixin.java b/src/main/java/lv/enes/mc/eris_alchemy/mixin/ItemMixin.java deleted file mode 100644 index aa6270b..0000000 --- a/src/main/java/lv/enes/mc/eris_alchemy/mixin/ItemMixin.java +++ /dev/null @@ -1,32 +0,0 @@ -package lv.enes.mc.eris_alchemy.mixin; - -import lv.enes.mc.eris_alchemy.EMC; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.Level; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import java.text.DecimalFormat; -import java.util.List; - -@Mixin(Item.class) -public abstract class ItemMixin { - @Unique - private static final DecimalFormat doubleFormat = new DecimalFormat("0"); - - static { - doubleFormat.setMaximumFractionDigits(1); - } - - @Inject(method = "appendHoverText", at = @At("RETURN")) - public void onAppendHoverText(ItemStack stack, Level world, List tooltip, TooltipFlag context, CallbackInfo ci) { - var emc = EMC.getInstance(world).get(stack.getItem()); - emc.ifPresent(value -> tooltip.add(Component.literal("EMC %s".formatted(doubleFormat.format(value))))); - } -} diff --git a/src/main/resources/assets/eris_alchemy/patchouli_books/guide_book/en_us/entries/root/emc.json b/src/main/resources/assets/eris_alchemy/patchouli_books/guide_book/en_us/entries/root/emc.json new file mode 100644 index 0000000..1e3658a --- /dev/null +++ b/src/main/resources/assets/eris_alchemy/patchouli_books/guide_book/en_us/entries/root/emc.json @@ -0,0 +1,9 @@ +{ + "name": "EMC", + "icon": "eris_alchemy:textures/gui/question-mark.png", + "category": "eris_alchemy:root", + "pages": [{ + "type": "patchouli:text", + "text": "$(thing)EMC$() (Energy-Matter Covalence) is an intrinsic property that $(strike)all$() most items have. You can view it as a measure of how $(italic)valuable$() an item is in the system of Eris Alchemy. Items that have an EMC value have it displayed in their tooltip you can see when mousing over it. On its own it doesn't change anything for the item, but can be useful with special items & blocks." + }] +} \ No newline at end of file diff --git a/src/main/resources/assets/eris_alchemy/textures/gui/question-mark.png b/src/main/resources/assets/eris_alchemy/textures/gui/question-mark.png new file mode 100644 index 0000000..335014c Binary files /dev/null and b/src/main/resources/assets/eris_alchemy/textures/gui/question-mark.png differ diff --git a/src/main/resources/eris_alchemy.mixins.json b/src/main/resources/eris_alchemy.mixins.json index 1fdb6bd..56177c0 100644 --- a/src/main/resources/eris_alchemy.mixins.json +++ b/src/main/resources/eris_alchemy.mixins.json @@ -8,7 +8,6 @@ "CoralFanBlockMixin", "CoralPlantBlockMixin", "CoralWallFanBlockMixin", - "ItemMixin", "RecipeMixin", "SmithingTransformRecipeMixin" ], -- cgit v1.2.3