MineLittlePony/src/main/java/com/minelittlepony/client/mixin/MixinFirstPersonRenderer.java

48 lines
2.3 KiB
Java
Raw Normal View History

package com.minelittlepony.client.mixin;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
2019-11-30 12:12:46 +01:00
import com.minelittlepony.client.render.PonyRenderDispatcher;
2021-06-10 19:32:21 +02:00
import org.jetbrains.annotations.Nullable;
2019-11-23 18:28:42 +01:00
2019-12-10 17:11:26 +01:00
import net.minecraft.client.render.item.HeldItemRenderer;
2019-11-23 18:28:42 +01:00
import net.minecraft.client.render.VertexConsumerProvider;
2020-01-08 20:17:05 +01:00
import net.minecraft.client.render.model.json.ModelTransformation.Mode;
2019-11-23 18:28:42 +01:00
import net.minecraft.client.util.math.MatrixStack;
2019-05-27 17:59:15 +02:00
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.ItemStack;
2019-11-23 18:28:42 +01:00
import net.minecraft.world.World;
import net.minecraft.client.render.item.ItemRenderer;
2019-12-10 17:11:26 +01:00
@Mixin(HeldItemRenderer.class)
2019-11-29 10:30:18 +01:00
abstract class MixinFirstPersonRenderer {
private static final String LivingEntity = "Lnet/minecraft/entity/LivingEntity;";
private static final String MatrixStack = "Lnet/minecraft/client/util/math/MatrixStack;";
private static final String ItemStack = "Lnet/minecraft/item/ItemStack;";
2020-01-08 20:17:05 +01:00
private static final String Mode = "Lnet/minecraft/client/render/model/json/ModelTransformation$Mode;";
private static final String VertexConsumerProvider = "Lnet/minecraft/client/render/VertexConsumerProvider;";
private static final String World = "Lnet/minecraft/world/World;";
private static final String ItemRenderer = "Lnet/minecraft/client/render/item/ItemRenderer;";
private static final String Boolean = "Z";
private static final String Int = "I";
2020-01-08 20:17:05 +01:00
@Redirect(method = "renderItem(" + LivingEntity + ItemStack + Mode + Boolean + MatrixStack + VertexConsumerProvider + Int + ")V",
at = @At(value = "INVOKE",
2020-11-30 21:12:11 +01:00
target = ItemRenderer + "renderItem(" + LivingEntity + ItemStack + Mode + Boolean + MatrixStack + VertexConsumerProvider + World + Int + Int + Int + ")V"))
private void redirectRenderItem(ItemRenderer target,
@Nullable LivingEntity entity,
ItemStack item,
2020-01-08 20:17:05 +01:00
Mode transform,
boolean left,
MatrixStack stack,
VertexConsumerProvider renderContext,
@Nullable World world,
2020-11-30 21:12:11 +01:00
int lightUv, int overlayUv, int posLong) {
PonyRenderDispatcher.getInstance().getMagicRenderer().renderItemInFirstPerson(target, entity, item, transform, left, stack, renderContext, world, lightUv, posLong);
}
}