mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2025-02-13 16:24:23 +01:00
Let's cut this down a bit
This commit is contained in:
parent
35e9ef750b
commit
b69c365a5d
1 changed files with 13 additions and 23 deletions
|
@ -2,42 +2,32 @@ package com.minelittlepony.mixin;
|
|||
|
||||
import com.minelittlepony.ducks.IRenderItem;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.client.renderer.GlStateManager.DestFactor;
|
||||
import net.minecraft.client.renderer.GlStateManager.SourceFactor;
|
||||
import net.minecraft.client.renderer.RenderItem;
|
||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||
import net.minecraft.client.resources.IResourceManagerReloadListener;
|
||||
import org.spongepowered.asm.mixin.Implements;
|
||||
import org.spongepowered.asm.mixin.Interface;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
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.callback.CallbackInfo;
|
||||
|
||||
@Mixin(value = RenderItem.class)
|
||||
@Implements( value = @Interface(iface = IRenderItem.class, prefix = "mlp$") )
|
||||
@Mixin(RenderItem.class)
|
||||
public abstract class MixinRenderItem implements IResourceManagerReloadListener, IRenderItem {
|
||||
|
||||
private static final String ItemStack = "Lnet/minecraft/item/ItemStack;";
|
||||
private static final String IBakedModel = "Lnet/minecraft/client/renderer/block/model/IBakedModel;";
|
||||
private static final String ItemCameraTransform$TransformType = "Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;";
|
||||
private static final String GlStateManager$SourceFactor = "Lnet/minecraft/client/renderer/GlStateManager$SourceFactor;";
|
||||
private static final String GlStateManager$DestFactor = "Lnet/minecraft/client/renderer/GlStateManager$DestFactor;";
|
||||
|
||||
private boolean transparency;
|
||||
|
||||
public void mlp$useTransparency(boolean transparency) {
|
||||
@Override
|
||||
public void useTransparency(boolean transparency) {
|
||||
this.transparency = transparency;
|
||||
}
|
||||
|
||||
@Redirect(method = "renderItemModel(" + ItemStack + IBakedModel + ItemCameraTransform$TransformType + "Z)V",
|
||||
at = @At(
|
||||
value = "INVOKE",
|
||||
target = "Lnet/minecraft/client/renderer/GlStateManager;tryBlendFuncSeparate("
|
||||
+ GlStateManager$SourceFactor + GlStateManager$DestFactor
|
||||
+ GlStateManager$SourceFactor + GlStateManager$DestFactor + ")V"))
|
||||
private void redirectBlendFunc(GlStateManager.SourceFactor srcFactor, GlStateManager.DestFactor dstFactor,
|
||||
GlStateManager.SourceFactor srcFactorAlpha, GlStateManager.DestFactor dstFactorAlpha) {
|
||||
@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) {
|
||||
GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.CONSTANT_COLOR, GlStateManager.DestFactor.ONE, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
|
||||
} else {
|
||||
GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
|
||||
GlStateManager.tryBlendFuncSeparate(SourceFactor.CONSTANT_COLOR, DestFactor.ONE, SourceFactor.ONE, DestFactor.ZERO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue