Jump to content

RoriPantsu

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by RoriPantsu

  1. I refer to the code of original sign to make a custom signs.In editing screen,font color display correct in any direction,but after editing,font color display wrong when the sign towards the south or the north ,as shown in figure.How can I solve this problem? Thank Reply ------------------------------------------------------------- Finally, after collating the code of original sign once again, I have found the mistake. As shown in the following Comment of code. TileEntityLargeSignRenderer.class package com.roripantsu.largesign.tileentity; import org.apache.commons.lang3.text.StrBuilder; import org.lwjgl.opengl.GL11; import com.roripantsu.largesign.gui.CustomFontRenderer; import com.roripantsu.largesign.gui.CustomFontStyleButtons; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.Entity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; public class TileEntityLargeSignRenderer extends TileEntitySpecialRenderer { private Minecraft MC=Minecraft.getMinecraft(); private CustomFontRenderer fontrenderer; public static TileEntityLargeSignRenderer instance = new TileEntityLargeSignRenderer(); private static final ResourceLocation textureLocation = new ResourceLocation("largesign:textures/blocks/block_large_sign.png"); private final Model_LargeSign modelLargeSign = new Model_LargeSign(); void renderLargeSign(TileEntityLargeSign tileEntityLargeSign, double render_xCoord, double render_yCoord, double render_zCoord, float FL) { String str = tileEntityLargeSign.largeSignText[0]; float[] adjust={tileEntityLargeSign.scaleAdjust,tileEntityLargeSign.XAdjust,tileEntityLargeSign.YAdjust}; if(str==null) str = ""; int color= tileEntityLargeSign.largeSignTextColor; boolean hasShadow=tileEntityLargeSign.hasShadow; int j = MC.theWorld.getBlockMetadata(tileEntityLargeSign.xCoord, tileEntityLargeSign.yCoord, tileEntityLargeSign.zCoord); float rotateAngle = 0.0F; GL11.glPushMatrix(); if (j == 2) { rotateAngle = 180.0F; } if (j == 4) { rotateAngle = 90.0F; } if (j == 5) { rotateAngle = -90.0F; } GL11.glTranslatef((float)render_xCoord+0.5F, (float)render_yCoord+0.5F, (float)render_zCoord+0.5F); GL11.glRotatef(-rotateAngle, 0.0F, 1.0F, 0.0F); this.bindTexture(textureLocation); GL11.glPushMatrix(); GL11.glScalef(1F, -0.875F, -0.5F); this.modelLargeSign.renderLargeSign((Entity)null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 1/16F); GL11.glPopMatrix(); this.fontrenderer =new CustomFontRenderer(this.MC.gameSettings, new ResourceLocation("textures/font/ascii.png"),this.MC.renderEngine, true); int stringWidth=this.fontrenderer.getStringWidth(str); float scaleParam=stringWidth<=72?(stringWidth<=63?(stringWidth<=54?(stringWidth<=45?(stringWidth<=36?(stringWidth<=27?(stringWidth<=18?(stringWidth<=9?90F:50F):35F):26F):21F):17F):15F):13F):11F; GL11.glTranslatef(0.0F, -0F, -0.435F); //wrong /*GL11.glScalef( (scaleParam+adjust[0])/1000F, -(scaleParam+adjust[0])/1000F, 0F); GL11.glNormal3f(0.0F, 0.0F, -1.0F * 0.017F);*/ //correct GL11.glScalef( (scaleParam+adjust[0])/1000F, -(scaleParam+adjust[0])/1000F, (scaleParam+adjust[0])/1000F); GL11.glNormal3f(0.0F, 0.0F, -1.0F * (scaleParam+adjust[0])/1000F); GL11.glDepthMask(false); GL11.glEnable(GL11.GL_BLEND); this.fontrenderer.drawString(str, -this.fontrenderer.getStringWidth(str)/ 2.0F+adjust[1], -4.5F+adjust[2], color,hasShadow); GL11.glDepthMask(true); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glPopMatrix(); } public void renderTileEntityAt(TileEntity tileEntity, double render_xCoord, double render_yCoord, double render_zCoord, float FL) { this.renderLargeSign((TileEntityLargeSign)tileEntity,render_xCoord,render_yCoord,render_zCoord,FL); } }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.