Files
MinecraftForge/forge/patches/minecraft/net/minecraft/src/RenderPlayer.java.patch
T

68 lines
3.2 KiB
Diff

--- ../src_base/minecraft/net/minecraft/src/RenderPlayer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/RenderPlayer.java 0000-00-00 00:00:00.000000000 -0000
@@ -4,8 +4,13 @@
import java.util.Arrays;
import java.util.List;
+import static net.minecraft.src.forge.IItemRenderer.ItemRenderType.EQUIPPED;
+import static net.minecraft.src.forge.IItemRenderer.ItemRendererHelper.BLOCK_3D;
import net.minecraft.client.Minecraft;
import org.lwjgl.opengl.GL11;
+import net.minecraft.src.forge.IArmorTextureProvider;
+import net.minecraft.src.forge.IItemRenderer;
+import net.minecraft.src.forge.MinecraftForgeClient;
public class RenderPlayer extends RenderLiving
{
@@ -36,7 +41,14 @@
if (var5 instanceof ItemArmor)
{
ItemArmor var6 = (ItemArmor)var5;
- this.loadTexture("/armor/" + armorFilenamePrefix[var6.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + ".png");
+ if (var5 instanceof IArmorTextureProvider)
+ {
+ loadTexture(((IArmorTextureProvider)var5).getArmorTextureFile(var4));
+ }
+ else
+ {
+ this.loadTexture("/armor/" + armorFilenamePrefix[var6.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + ".png");
+ }
ModelBiped var7 = par2 == 2 ? this.modelArmor : this.modelArmorChestplate;
var7.bipedHead.showModel = par2 == 0;
var7.bipedHeadwear.showModel = par2 == 0;
@@ -168,7 +180,10 @@
GL11.glPushMatrix();
this.modelBipedMain.bipedHead.postRender(0.0625F);
- if (RenderBlocks.renderItemIn3d(Block.blocksList[var3.itemID].getRenderType()))
+ IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var3, EQUIPPED);
+ boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var3, BLOCK_3D));
+
+ if (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var3.itemID].getRenderType()))
{
float var4 = 0.625F;
GL11.glTranslatef(0.0F, -0.25F, 0.0F);
@@ -269,8 +284,11 @@
{
var20 = var21.getItemUseAction();
}
-
- if (var21.itemID < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[var21.itemID].getRenderType()))
+
+ IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var21, EQUIPPED);
+ boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var21, BLOCK_3D));
+
+ if (var21.itemID < 256 && (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var21.itemID].getRenderType())))
{
var6 = 0.5F;
GL11.glTranslatef(0.0F, 0.1875F, -0.3125F);
@@ -323,7 +341,7 @@
if (var21.getItem().func_46058_c())
{
- for (int var25 = 0; var25 <= 1; ++var25)
+ for (int var25 = 0; var25 < var21.getItem().getRenderPasses(var21.getItemDamage()); ++var25)
{
int var24 = var21.getItem().getColorFromDamage(var21.getItemDamage(), var25);
float var26 = (float)(var24 >> 16 & 255) / 255.0F;