package com.zivilon.cinder_loe.mixins; import com.zivilon.cinder_loe.client.render.item.RenderHelper; import com.zivilon.cinder_loe.CinderLoE_Config; import org.lwjgl.opengl.GL11; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; import lotr.client.LOTRClientProxy; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.util.ResourceLocation; @Mixin(LOTRClientProxy.class) public abstract class MixinLOTRClientProxy { @Shadow(remap = false) public static final ResourceLocation enchantmentTexture = new ResourceLocation("textures/misc/enchanted_item_glint.png"); /** * @author Shinare * @reason Added support for semi-transparent item textures */ @Overwrite(remap = false) public static void renderEnchantmentEffect() { Tessellator tessellator = Tessellator.instance; TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); GL11.glDepthFunc(514); GL11.glDisable(2896); texturemanager.bindTexture(enchantmentTexture); GL11.glEnable(3042); GL11.glBlendFunc(768, 1); GL11.glColor4f(CinderLoE_Config.enchantment_color_red, CinderLoE_Config.enchantment_color_green, CinderLoE_Config.enchantment_color_blue, 1.0F); GL11.glMatrixMode(5890); GL11.glPushMatrix(); float scale = 0.125F; GL11.glScalef(scale, scale, scale); float randomShift = (float)(Minecraft.getSystemTime() % 3000L) / 3000.0F * 8.0F; GL11.glTranslatef(randomShift, 0.0F, 0.0F); GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F); RenderHelper.customRenderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F, true); GL11.glPopMatrix(); GL11.glPushMatrix(); GL11.glScalef(scale, scale, scale); randomShift = (float)(Minecraft.getSystemTime() % 4873L) / 4873.0F * 8.0F; GL11.glTranslatef(-randomShift, 0.0F, 0.0F); GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F); RenderHelper.customRenderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F, true); GL11.glPopMatrix(); GL11.glMatrixMode(5888); GL11.glDisable(3042); GL11.glEnable(2896); GL11.glDepthFunc(515); } }