package net.minecraft.client.renderer.tileentity;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Map;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.model.ModelSkeletonHead;
import net.minecraft.entity.Entity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntitySkull;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
@SideOnly(Side.CLIENT)
public class TileEntitySkullRenderer extends TileEntitySpecialRenderer
{
private static final ResourceLocation field_147537_c = new ResourceLocation("textures/entity/skeleton/skeleton.png");
private static final ResourceLocation field_147534_d = new ResourceLocation("textures/entity/skeleton/wither_skeleton.png");
private static final ResourceLocation field_147535_e = new ResourceLocation("textures/entity/zombie/zombie.png");
private static final ResourceLocation field_147532_f = new ResourceLocation("textures/entity/creeper/creeper.png");
public static TileEntitySkullRenderer field_147536_b;
private ModelSkeletonHead field_147533_g = new ModelSkeletonHead(0, 0, 64, 32);
private ModelSkeletonHead field_147538_h = new ModelSkeletonHead(0, 0, 64, 64);
private static final String __OBFID = "CL_00000971";
public void renderTileEntityAt(TileEntitySkull p_147500_1_, double p_147500_2_, double p_147500_4_, double p_147500_6_, float p_147500_8_)
{
this.func_152674_a((float)p_147500_2_, (float)p_147500_4_, (float)p_147500_6_, p_147500_1_.getBlockMetadata() & 7, (float)(p_147500_1_.getSkullRotation() * 360) / 16.0F, p_147500_1_.getSkullType(), p_147500_1_.func_152108_a());
}
public void func_147497_a(TileEntityRendererDispatcher p_147497_1_)
{
super.func_147497_a(p_147497_1_);
field_147536_b = this;
}
public void func_152674_a(float p_152674_1_, float p_152674_2_, float p_152674_3_, int p_152674_4_, float p_152674_5_, int p_152674_6_, GameProfile p_152674_7_)
{
ModelSkeletonHead modelskeletonhead = this.field_147533_g;
switch (p_152674_6_)
{
case 0:
default:
this.bindTexture(field_147537_c);
break;
case 1:
this.bindTexture(field_147534_d);
break;
case 2:
this.bindTexture(field_147535_e);
modelskeletonhead = this.field_147538_h;
break;
case 3:
ResourceLocation resourcelocation = AbstractClientPlayer.locationStevePng;
if (p_152674_7_ != null)
{
Minecraft minecraft = Minecraft.getMinecraft();
Map map = minecraft.getSkinManager().loadSkinFromCache(p_152674_7_);
if (map.containsKey(Type.SKIN))
{
resourcelocation = minecraft.getSkinManager().loadSkin((MinecraftProfileTexture)map.get(Type.SKIN), Type.SKIN);
}
}
this.bindTexture(resourcelocation);
break;
case 4:
this.bindTexture(field_147532_f);
}
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_CULL_FACE);
if (p_152674_4_ != 1)
{
switch (p_152674_4_)
{
case 2:
GL11.glTranslatef(p_152674_1_ + 0.5F, p_152674_2_ + 0.25F, p_152674_3_ + 0.74F);
break;
case 3:
GL11.glTranslatef(p_152674_1_ + 0.5F, p_152674_2_ + 0.25F, p_152674_3_ + 0.26F);
p_152674_5_ = 180.0F;
break;
case 4:
GL11.glTranslatef(p_152674_1_ + 0.74F, p_152674_2_ + 0.25F, p_152674_3_ + 0.5F);
p_152674_5_ = 270.0F;
break;
case 5:
default:
GL11.glTranslatef(p_152674_1_ + 0.26F, p_152674_2_ + 0.25F, p_152674_3_ + 0.5F);
p_152674_5_ = 90.0F;
}
}
else
{
GL11.glTranslatef(p_152674_1_ + 0.5F, p_152674_2_, p_152674_3_ + 0.5F);
}
float f4 = 0.0625F;
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glScalef(-1.0F, -1.0F, 1.0F);
GL11.glEnable(GL11.GL_ALPHA_TEST);
modelskeletonhead.render((Entity)null, 0.0F, 0.0F, 0.0F, p_152674_5_, 0.0F, f4);
GL11.glPopMatrix();
}
public void renderTileEntityAt(TileEntity p_147500_1_, double p_147500_2_, double p_147500_4_, double p_147500_6_, float p_147500_8_)
{
this.renderTileEntityAt((TileEntitySkull)p_147500_1_, p_147500_2_, p_147500_4_, p_147500_6_, p_147500_8_);
}
}