Added hook for rendering equipped items

This commit is contained in:
newthead 2012-03-15 23:47:28 -07:00
parent 2524cf273b
commit dc0fc67412
3 changed files with 29 additions and 17 deletions

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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()))
{