mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2025-02-13 08:14:23 +01:00
Update mixin names to match the target classes
This commit is contained in:
parent
d2c07a3477
commit
07873056ed
4 changed files with 74 additions and 73 deletions
|
@ -0,0 +1,35 @@
|
||||||
|
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;
|
||||||
|
|
||||||
|
import com.minelittlepony.client.PonyRenderManager;
|
||||||
|
|
||||||
|
import net.minecraft.client.entity.AbstractClientPlayer;
|
||||||
|
import net.minecraft.client.renderer.FirstPersonRenderer;
|
||||||
|
import net.minecraft.client.renderer.ItemRenderer;
|
||||||
|
import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation") // ItemCameraTransforms is deprecated by forge but we still need it.
|
||||||
|
@Mixin(FirstPersonRenderer.class)
|
||||||
|
public class MixinFirstPersonRenderer {
|
||||||
|
|
||||||
|
private static final String AbstractClientPlayer = "Lnet/minecraft/client/entity/AbstractClientPlayer;";
|
||||||
|
private static final String ItemStack = "Lnet/minecraft/item/ItemStack;";
|
||||||
|
private static final String EnumHand = "Lnet/minecraft/util/EnumHand;";
|
||||||
|
private static final String EntityLivingBase = "Lnet/minecraft/entity/EntityLivingBase;";
|
||||||
|
private static final String TransformType = "Lnet/minecraft/client/renderer/block/ItemCameraTransforms$TransformType;";
|
||||||
|
|
||||||
|
// TODO: This has moved to mc.getFirstPersonRenderer()
|
||||||
|
//public void renderItemInFirstPerson(AbstractClientPlayer player, float p_187457_2_, float p_187457_3_, EnumHand hand, float p_187457_5_, ItemStack stack, float p_187457_7_)
|
||||||
|
//public void renderItemSide(EntityLivingBase entitylivingbaseIn, ItemStack heldStack, ItemCameraTransforms.TransformType transform, boolean leftHanded)
|
||||||
|
@Redirect(method = "renderItemInFirstPerson(" + AbstractClientPlayer + "FF" + EnumHand + "F" + ItemStack + "F)V",
|
||||||
|
at = @At(value = "INVOKE",
|
||||||
|
target = "Lnet/minecraft/client/renderer/ItemRenderer;renderItemSide(" + EntityLivingBase + ItemStack + TransformType + "Z)V"))
|
||||||
|
private void redirectRenderItemSide(ItemRenderer self, EntityLivingBase entity, ItemStack stack, TransformType transform, boolean left) {
|
||||||
|
PonyRenderManager.getInstance().getMagicRenderer().renderItemInFirstPerson(self, (AbstractClientPlayer)entity, stack, transform, left);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,34 +1,49 @@
|
||||||
package com.minelittlepony.client.mixin;
|
package com.minelittlepony.client.mixin;
|
||||||
|
|
||||||
|
import com.minelittlepony.client.ducks.IRenderItem;
|
||||||
|
import com.minelittlepony.client.render.LevitatingItemRenderer;
|
||||||
|
|
||||||
|
import net.minecraft.client.renderer.ItemRenderer;
|
||||||
|
import net.minecraft.client.renderer.model.IBakedModel;
|
||||||
|
import net.minecraft.resources.IResourceManagerReloadListener;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
import com.minelittlepony.client.PonyRenderManager;
|
@SuppressWarnings("deprecation") // IResourceManagerReloadListener is deprecated by forge but it's part of the signature. We can't remove it.
|
||||||
|
@Mixin(ItemRenderer.class)
|
||||||
|
public abstract class MixinItemRenderer implements IResourceManagerReloadListener, IRenderItem {
|
||||||
|
|
||||||
import net.minecraft.client.entity.AbstractClientPlayer;
|
private boolean transparency;
|
||||||
import net.minecraft.client.renderer.FirstPersonRenderer;
|
|
||||||
import net.minecraft.client.renderer.ItemRenderer;
|
|
||||||
import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType;
|
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
|
|
||||||
@Mixin(FirstPersonRenderer.class)
|
@Override
|
||||||
public class MixinItemRenderer {
|
public void useTransparency(boolean transparency) {
|
||||||
|
this.transparency = transparency;
|
||||||
|
}
|
||||||
|
|
||||||
private static final String AbstractClientPlayer = "Lnet/minecraft/client/entity/AbstractClientPlayer;";
|
@Inject(method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/renderer/block/model/IBakedModel;)V", at = @At("HEAD"))
|
||||||
private static final String ItemStack = "Lnet/minecraft/item/ItemStack;";
|
private void onRenderItem(ItemStack stack, IBakedModel model, CallbackInfo info) {
|
||||||
private static final String EnumHand = "Lnet/minecraft/util/EnumHand;";
|
if (transparency) {
|
||||||
private static final String EntityLivingBase = "Lnet/minecraft/entity/EntityLivingBase;";
|
LevitatingItemRenderer.enableItemGlowRenderProfile();
|
||||||
private static final String TransformType = "Lnet/minecraft/client/renderer/block/ItemCameraTransforms$TransformType;";
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: This has moved to mc.getFirstPersonRenderer()
|
@ModifyArg(method = "renderQuads(Lnet/minecraft/client/renderer/BufferBuilder;Ljava/util/List;ILnet/minecraft/item/ItemStack;)V",
|
||||||
//public void renderItemInFirstPerson(AbstractClientPlayer player, float p_187457_2_, float p_187457_3_, EnumHand hand, float p_187457_5_, ItemStack stack, float p_187457_7_)
|
|
||||||
//public void renderItemSide(EntityLivingBase entitylivingbaseIn, ItemStack heldStack, ItemCameraTransforms.TransformType transform, boolean leftHanded)
|
|
||||||
@Redirect(method = "renderItemInFirstPerson(" + AbstractClientPlayer + "FF" + EnumHand + "F" + ItemStack + "F)V",
|
|
||||||
at = @At(value = "INVOKE",
|
at = @At(value = "INVOKE",
|
||||||
target = "Lnet/minecraft/client/renderer/ItemRenderer;renderItemSide(" + EntityLivingBase + ItemStack + TransformType + "Z)V"))
|
target = "Lnet/minecraft/client/renderer/RenderItem;renderQuad(Lnet/minecraft/client/renderer/BufferBuilder;Lnet/minecraft/client/renderer/block/model/BakedQuad;I)V"),
|
||||||
private void redirectRenderItemSide(ItemRenderer self, EntityLivingBase entity, ItemStack stack, TransformType transform, boolean left) {
|
index = 2)
|
||||||
PonyRenderManager.getInstance().getMagicRenderer().renderItemInFirstPerson(self, (AbstractClientPlayer)entity, stack, transform, left);
|
private int modifyItemRenderTint(int color) {
|
||||||
|
return transparency ? -1 : color;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject(method = "renderEffect(Lnet/minecraft/client/renderer/block/model/IBakedModel;)V", at = @At("HEAD"), cancellable = true)
|
||||||
|
private void renderEffect(IBakedModel model, CallbackInfo info) {
|
||||||
|
if (transparency) {
|
||||||
|
info.cancel();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
package com.minelittlepony.client.mixin;
|
|
||||||
|
|
||||||
import com.minelittlepony.client.ducks.IRenderItem;
|
|
||||||
import com.minelittlepony.client.render.LevitatingItemRenderer;
|
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.client.renderer.ItemRenderer;
|
|
||||||
import net.minecraft.client.renderer.model.IBakedModel;
|
|
||||||
import net.minecraft.resources.IResourceManagerReloadListener;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
|
||||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|
||||||
|
|
||||||
@Mixin(ItemRenderer.class)
|
|
||||||
public abstract class MixinRenderItem implements IResourceManagerReloadListener, IRenderItem {
|
|
||||||
|
|
||||||
private boolean transparency;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void useTransparency(boolean transparency) {
|
|
||||||
this.transparency = transparency;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject(method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/renderer/block/model/IBakedModel;)V", at = @At("HEAD"))
|
|
||||||
private void onRenderItem(ItemStack stack, IBakedModel model, CallbackInfo info) {
|
|
||||||
if (transparency) {
|
|
||||||
LevitatingItemRenderer.enableItemGlowRenderProfile();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ModifyArg(method = "renderQuads(Lnet/minecraft/client/renderer/BufferBuilder;Ljava/util/List;ILnet/minecraft/item/ItemStack;)V",
|
|
||||||
at = @At(value = "INVOKE",
|
|
||||||
target = "Lnet/minecraft/client/renderer/RenderItem;renderQuad(Lnet/minecraft/client/renderer/BufferBuilder;Lnet/minecraft/client/renderer/block/model/BakedQuad;I)V"),
|
|
||||||
index = 2)
|
|
||||||
private int modifyItemRenderTint(int color) {
|
|
||||||
return transparency ? -1 : color;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject(method = "renderEffect(Lnet/minecraft/client/renderer/block/model/IBakedModel;)V", at = @At("HEAD"), cancellable = true)
|
|
||||||
private void renderEffect(IBakedModel model, CallbackInfo info) {
|
|
||||||
if (transparency) {
|
|
||||||
info.cancel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -6,9 +6,9 @@
|
||||||
"compatibilityLevel": "JAVA_8",
|
"compatibilityLevel": "JAVA_8",
|
||||||
"mixins": [
|
"mixins": [
|
||||||
"MixinDefaultPlayerSkin",
|
"MixinDefaultPlayerSkin",
|
||||||
|
"MixinFirstPersonRenderer",
|
||||||
"MixinGlStateManager",
|
"MixinGlStateManager",
|
||||||
"MixinItemRenderer",
|
"MixinItemRenderer",
|
||||||
"MixinRenderItem",
|
|
||||||
"MixinRenderManager"
|
"MixinRenderManager"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue