001 package net.minecraft.src;
002
003 import cpw.mods.fml.common.Side;
004 import cpw.mods.fml.common.asm.SideOnly;
005 import org.lwjgl.opengl.GL11;
006
007 @SideOnly(Side.CLIENT)
008 public class TileEntitySignRenderer extends TileEntitySpecialRenderer
009 {
010 /** The ModelSign instance used by the TileEntitySignRenderer */
011 private ModelSign modelSign = new ModelSign();
012
013 public void renderTileEntitySignAt(TileEntitySign par1TileEntitySign, double par2, double par4, double par6, float par8)
014 {
015 Block var9 = par1TileEntitySign.getBlockType();
016 GL11.glPushMatrix();
017 float var10 = 0.6666667F;
018 float var12;
019
020 if (var9 == Block.signPost)
021 {
022 GL11.glTranslatef((float)par2 + 0.5F, (float)par4 + 0.75F * var10, (float)par6 + 0.5F);
023 float var11 = (float)(par1TileEntitySign.getBlockMetadata() * 360) / 16.0F;
024 GL11.glRotatef(-var11, 0.0F, 1.0F, 0.0F);
025 this.modelSign.signStick.showModel = true;
026 }
027 else
028 {
029 int var16 = par1TileEntitySign.getBlockMetadata();
030 var12 = 0.0F;
031
032 if (var16 == 2)
033 {
034 var12 = 180.0F;
035 }
036
037 if (var16 == 4)
038 {
039 var12 = 90.0F;
040 }
041
042 if (var16 == 5)
043 {
044 var12 = -90.0F;
045 }
046
047 GL11.glTranslatef((float)par2 + 0.5F, (float)par4 + 0.75F * var10, (float)par6 + 0.5F);
048 GL11.glRotatef(-var12, 0.0F, 1.0F, 0.0F);
049 GL11.glTranslatef(0.0F, -0.3125F, -0.4375F);
050 this.modelSign.signStick.showModel = false;
051 }
052
053 this.bindTextureByName("/item/sign.png");
054 GL11.glPushMatrix();
055 GL11.glScalef(var10, -var10, -var10);
056 this.modelSign.renderSign();
057 GL11.glPopMatrix();
058 FontRenderer var17 = this.getFontRenderer();
059 var12 = 0.016666668F * var10;
060 GL11.glTranslatef(0.0F, 0.5F * var10, 0.07F * var10);
061 GL11.glScalef(var12, -var12, var12);
062 GL11.glNormal3f(0.0F, 0.0F, -1.0F * var12);
063 GL11.glDepthMask(false);
064 byte var13 = 0;
065
066 for (int var14 = 0; var14 < par1TileEntitySign.signText.length; ++var14)
067 {
068 String var15 = par1TileEntitySign.signText[var14];
069
070 if (var14 == par1TileEntitySign.lineBeingEdited)
071 {
072 var15 = "> " + var15 + " <";
073 var17.drawString(var15, -var17.getStringWidth(var15) / 2, var14 * 10 - par1TileEntitySign.signText.length * 5, var13);
074 }
075 else
076 {
077 var17.drawString(var15, -var17.getStringWidth(var15) / 2, var14 * 10 - par1TileEntitySign.signText.length * 5, var13);
078 }
079 }
080
081 GL11.glDepthMask(true);
082 GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
083 GL11.glPopMatrix();
084 }
085
086 public void renderTileEntityAt(TileEntity par1TileEntity, double par2, double par4, double par6, float par8)
087 {
088 this.renderTileEntitySignAt((TileEntitySign)par1TileEntity, par2, par4, par6, par8);
089 }
090 }