diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinFirstPersonRenderer.java b/src/main/java/com/minelittlepony/client/mixin/MixinFirstPersonRenderer.java index ea013a4f..b007a6e3 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinFirstPersonRenderer.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinFirstPersonRenderer.java @@ -8,7 +8,6 @@ import com.minelittlepony.client.PonyRenderManager; import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.FirstPersonRenderer; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; @@ -25,7 +24,7 @@ public class MixinFirstPersonRenderer { + "Lnet/minecraft/entity/LivingEntity;" + "Lnet/minecraft/item/ItemStack;" + "Lnet/minecraft/client/render/model/json/ModelTransformation$Type;Z)V")) - private void redirectRenderItemSide(ItemRenderer self, LivingEntity entity, ItemStack stack, ModelTransformation.Type transform, boolean left) { + private void redirectRenderItemSide(FirstPersonRenderer self, LivingEntity entity, ItemStack stack, ModelTransformation.Type transform, boolean left) { PonyRenderManager.getInstance().getMagicRenderer().renderItemInFirstPerson(self, (AbstractClientPlayerEntity)entity, stack, transform, left); } } diff --git a/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java b/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java index 13ddd5dc..619e2235 100644 --- a/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java @@ -11,6 +11,7 @@ import com.minelittlepony.settings.PonySettings; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.AbstractClientPlayerEntity; +import net.minecraft.client.render.FirstPersonRenderer; import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.entity.LivingEntity; @@ -67,23 +68,25 @@ public class LevitatingItemRenderer { /** * Renders an item in first person optionally with a magical overlay. */ - public void renderItemInFirstPerson(ItemRenderer renderer, AbstractClientPlayerEntity entity, ItemStack stack, ModelTransformation.Type transform, boolean left) { + public void renderItemInFirstPerson(FirstPersonRenderer renderer, AbstractClientPlayerEntity entity, ItemStack stack, ModelTransformation.Type transform, boolean left) { IPony pony = MineLittlePony.getInstance().getManager().getPony(entity); pushMatrix(); boolean doMagic = PonySettings.FPSMAGIC.get() && pony.getMetadata().hasMagic(); + ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer(); + if (doMagic) { - setupPerspective(renderer, entity, stack, left); + setupPerspective(itemRenderer, entity, stack, left); } - renderer.renderHeldItem(stack, entity, transform, left); + renderer.renderItemFromSide(entity, stack, transform, left); if (doMagic) { disableLighting(); - ((IRenderItem)renderer).useTransparency(true); + ((IRenderItem)itemRenderer).useTransparency(true); PonySkullRenderer.ponyInstance.useTransparency(true); setColor(pony.getMetadata().getGlowColor()); @@ -91,11 +94,11 @@ public class LevitatingItemRenderer { scalef(1.1F, 1.1F, 1.1F); translatef(-0.015F, 0.01F, 0.01F); - renderer.renderHeldItem(stack, entity, transform, left); + renderer.renderItemFromSide(entity, stack, transform, left); translatef(0.03F, -0.01F, -0.02F); - renderer.renderHeldItem(stack, entity, transform, left); + renderer.renderItemFromSide(entity, stack, transform, left); - ((IRenderItem)renderer).useTransparency(false); + ((IRenderItem)itemRenderer).useTransparency(false); PonySkullRenderer.ponyInstance.useTransparency(false);