diff --git a/src/main/java/com/minelittlepony/unicopia/item/ZapAppleItem.java b/src/main/java/com/minelittlepony/unicopia/item/ZapAppleItem.java index 9940f8cd..3f336af6 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/ZapAppleItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/ZapAppleItem.java @@ -95,6 +95,17 @@ public class ZapAppleItem extends AppleItem { } } + public ItemStack getAppearanceStack(ItemStack stack) { + Item appearance = ((ZapAppleItem)stack.getItem()).getAppearance(stack); + if (appearance != Items.AIR) { + ItemStack newAppearance = new ItemStack(appearance, stack.getCount()); + newAppearance.setTag(stack.getTag().copy()); + newAppearance.removeSubTag("appearance"); + return newAppearance; + } + return stack; + } + public Item getAppearance(ItemStack stack) { if (stack.hasTag() && stack.getTag().contains("appearance")) { return Registry.ITEM.get(new Identifier(stack.getTag().getString("appearance"))); diff --git a/src/main/java/com/minelittlepony/unicopia/mixin/client/MixinItemModels.java b/src/main/java/com/minelittlepony/unicopia/mixin/client/MixinItemModels.java new file mode 100644 index 00000000..f809099f --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/mixin/client/MixinItemModels.java @@ -0,0 +1,23 @@ +package com.minelittlepony.unicopia.mixin.client; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; + +import com.minelittlepony.unicopia.item.ZapAppleItem; + +import net.minecraft.client.render.item.ItemModels; +import net.minecraft.item.ItemStack; + +@Mixin(ItemModels.class) +abstract class MixinItemModels { + @ModifyVariable(method = "getModel(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/render/model/BakedModel;", + at = @At("HEAD"), + index = 1) + private ItemStack modifyStack(ItemStack stack) { + if (stack.getItem() instanceof ZapAppleItem) { + return ((ZapAppleItem)stack.getItem()).getAppearanceStack(stack); + } + return stack; + } +} diff --git a/src/main/resources/unicopia.mixin.json b/src/main/resources/unicopia.mixin.json index 632aeef5..a3e5073a 100644 --- a/src/main/resources/unicopia.mixin.json +++ b/src/main/resources/unicopia.mixin.json @@ -24,6 +24,7 @@ "client.MixinCamera", "client.MixinEntityRenderDispatcher", "client.MixinGameRenderer", + "client.MixinItemModels", "client.MixinKeyboardInput", "client.MixinMinecraftClient", "client.MixinMouse"