Fixed FPS magic rendering

This commit is contained in:
Sollace 2019-06-02 14:20:42 +02:00
parent f06e575381
commit 3ee6109cac
2 changed files with 11 additions and 9 deletions

View file

@ -8,7 +8,6 @@ import com.minelittlepony.client.PonyRenderManager;
import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.network.AbstractClientPlayerEntity;
import net.minecraft.client.render.FirstPersonRenderer; import net.minecraft.client.render.FirstPersonRenderer;
import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.render.model.json.ModelTransformation;
import net.minecraft.entity.LivingEntity; import net.minecraft.entity.LivingEntity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -25,7 +24,7 @@ public class MixinFirstPersonRenderer {
+ "Lnet/minecraft/entity/LivingEntity;" + "Lnet/minecraft/entity/LivingEntity;"
+ "Lnet/minecraft/item/ItemStack;" + "Lnet/minecraft/item/ItemStack;"
+ "Lnet/minecraft/client/render/model/json/ModelTransformation$Type;Z)V")) + "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); PonyRenderManager.getInstance().getMagicRenderer().renderItemInFirstPerson(self, (AbstractClientPlayerEntity)entity, stack, transform, left);
} }
} }

View file

@ -11,6 +11,7 @@ import com.minelittlepony.settings.PonySettings;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.network.AbstractClientPlayerEntity;
import net.minecraft.client.render.FirstPersonRenderer;
import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.render.model.json.ModelTransformation;
import net.minecraft.entity.LivingEntity; import net.minecraft.entity.LivingEntity;
@ -67,23 +68,25 @@ public class LevitatingItemRenderer {
/** /**
* Renders an item in first person optionally with a magical overlay. * 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); IPony pony = MineLittlePony.getInstance().getManager().getPony(entity);
pushMatrix(); pushMatrix();
boolean doMagic = PonySettings.FPSMAGIC.get() && pony.getMetadata().hasMagic(); boolean doMagic = PonySettings.FPSMAGIC.get() && pony.getMetadata().hasMagic();
ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer();
if (doMagic) { 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) { if (doMagic) {
disableLighting(); disableLighting();
((IRenderItem)renderer).useTransparency(true); ((IRenderItem)itemRenderer).useTransparency(true);
PonySkullRenderer.ponyInstance.useTransparency(true); PonySkullRenderer.ponyInstance.useTransparency(true);
setColor(pony.getMetadata().getGlowColor()); setColor(pony.getMetadata().getGlowColor());
@ -91,11 +94,11 @@ public class LevitatingItemRenderer {
scalef(1.1F, 1.1F, 1.1F); scalef(1.1F, 1.1F, 1.1F);
translatef(-0.015F, 0.01F, 0.01F); 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); 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); PonySkullRenderer.ponyInstance.useTransparency(false);