From dc0fc674122c76846ce887a9bd910c98b896d8cc Mon Sep 17 00:00:00 2001 From: newthead Date: Thu, 15 Mar 2012 23:47:28 -0700 Subject: [PATCH] Added hook for rendering equipped items --- .../minecraft/src/forge/ForgeHooksClient.java | 27 +++++++++++-------- .../src/forge/IEquippedItemRenderer.java | 2 +- .../net/minecraft/src/ItemRenderer.java.patch | 17 ++++++++---- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/forge/forge_client/src/net/minecraft/src/forge/ForgeHooksClient.java b/forge/forge_client/src/net/minecraft/src/forge/ForgeHooksClient.java index d14e578f0..64858cd0d 100644 --- a/forge/forge_client/src/net/minecraft/src/forge/ForgeHooksClient.java +++ b/forge/forge_client/src/net/minecraft/src/forge/ForgeHooksClient.java @@ -250,20 +250,25 @@ public class ForgeHooksClient } } - public static void renderCustomItem(ICustomItemRenderer customRenderer, RenderBlocks renderBlocks, int itemID, int metadata, float brightness) + public static void renderEquippedItem(IEquippedItemRenderer customRenderer, RenderBlocks renderBlocks, EntityLiving entity, int itemID, int metadata) { - Tessellator tessellator = Tessellator.instance; - if (renderBlocks.useInventoryTint) + if (MinecraftForgeClient.renderEquippedItemAsBlock(itemID)) { - int j = 0xffffff;//block.getRenderColor(i); - float f1 = (float) (j >> 16 & 0xff) / 255F; - float f3 = (float) (j >> 8 & 0xff) / 255F; - float f5 = (float) (j & 0xff) / 255F; - GL11.glColor4f(f1 * brightness, f3 * brightness, f5 * brightness, 1.0F); + customRenderer.renderEquippedItem(renderBlocks, entity, itemID, metadata); + } + else + { + GL11.glPushMatrix(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glTranslatef(0.0F, 0.3F, 0.0F); + GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glRotatef(50.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(335.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(-0.9375F, -0.0625F, 0.0F); + customRenderer.renderEquippedItem(renderBlocks, entity, itemID, metadata); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); } - - //ModLoader.RenderInvBlock(this, block, i, k); - customRenderer.renderInventory(renderBlocks, itemID, metadata); } } diff --git a/forge/forge_client/src/net/minecraft/src/forge/IEquippedItemRenderer.java b/forge/forge_client/src/net/minecraft/src/forge/IEquippedItemRenderer.java index d8e8d3fca..438b1504b 100644 --- a/forge/forge_client/src/net/minecraft/src/forge/IEquippedItemRenderer.java +++ b/forge/forge_client/src/net/minecraft/src/forge/IEquippedItemRenderer.java @@ -4,5 +4,5 @@ import net.minecraft.src.RenderBlocks; public interface IEquippedItemRenderer { - public void renderEquippedItem(RenderBlocks render, int itemID, int metadata); + public void renderEquippedItem(RenderBlocks render, EntityLiving entity, int itemID, int metadata); } diff --git a/forge/patches/minecraft/net/minecraft/src/ItemRenderer.java.patch b/forge/patches/minecraft/net/minecraft/src/ItemRenderer.java.patch index 567e1c769..9edbc7f83 100644 --- a/forge/patches/minecraft/net/minecraft/src/ItemRenderer.java.patch +++ b/forge/patches/minecraft/net/minecraft/src/ItemRenderer.java.patch @@ -5,23 +5,30 @@ import net.minecraft.client.Minecraft; +import net.minecraft.src.forge.ForgeHooksClient; -+import net.minecraft.src.forge.ICustomItemRenderer; ++import net.minecraft.src.forge.IEquippedItemRenderer; +import net.minecraft.src.forge.MinecraftForgeClient; + import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; -@@ -33,21 +37,27 @@ +@@ -33,21 +37,34 @@ public void renderItem(EntityLiving par1EntityLiving, ItemStack par2ItemStack, int par3) { GL11.glPushMatrix(); -+ ICustomItemRenderer customRenderer = MinecraftForgeClient.getCustomItemRenderer(par2ItemStack.itemID); ++ IEquippedItemRenderer customRenderer = MinecraftForgeClient.getEquippedItemRenderer(par2ItemStack.itemID); - if (par2ItemStack.itemID < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[par2ItemStack.itemID].getRenderType())) + if (customRenderer != null) + { -+ GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture(ForgeHooksClient.getTexture("/terrain.png", par2ItemStack.getItem()))); -+ ForgeHooksClient.renderCustomItem(customRenderer, renderBlocksInstance, par2ItemStack.itemID, par2ItemStack.getItemDamage(), par1EntityLiving.getEntityBrightness(1.0F)); ++ if (par2ItemStack.itemID < 256) ++ { ++ GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture(ForgeHooksClient.getTexture("/terrain.png", par2ItemStack.getItem()))); ++ } ++ else ++ { ++ GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture(ForgeHooksClient.getTexture("/gui/items.png", par2ItemStack.getItem()))); ++ } ++ ForgeHooksClient.renderEquippedItem(customRenderer, renderBlocksInstance, par1EntityLiving, par2ItemStack.itemID, par2ItemStack.getItemDamage()); + } + else if (par2ItemStack.itemID < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[par2ItemStack.itemID].getRenderType())) {