package openblocks.client.renderer.tileentity; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import openblocks.client.model.ModelGrave; import openblocks.common.tileentity.TileEntityGrave; import openmods.utils.BlockUtils; import org.lwjgl.opengl.GL11; public class TileEntityGraveRenderer extends TileEntitySpecialRenderer { private ModelGrave model = new ModelGrave(); private static final ResourceLocation texture = new ResourceLocation("openblocks", "textures/models/grave.png"); @Override public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { TileEntityGrave target = (TileEntityGrave)tileentity; float stoneWidth = 8 / 16f; GL11.glPushMatrix(); GL11.glTranslatef((float)x + 0.5F, (float)y + 1.0f, (float)z + 0.5F); GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); GL11.glPushMatrix(); GL11.glRotatef(-BlockUtils.getRotationFromOrientation(target.getOrientation()), 0, 1, 0); bindTexture(texture); model.render(tileentity, f); String username = target.getUsername(); FontRenderer renderer = func_147498_b(); if (renderer != null) { int stringWidth = renderer.getStringWidth(username); float textScale = stoneWidth / stringWidth; textScale = Math.min(textScale, 0.02f); if (target.isOnSoil()) { GL11.glTranslatef(-(textScale * stringWidth) / 2, 0.3f, 0.36f); } else { GL11.glTranslatef(-(textScale * stringWidth) / 2, 0.35f, 0.34f); } GL11.glScalef(textScale, textScale, textScale); GL11.glRotatef(-5F, 1.0F, 0.0F, 0.0F); GL11.glRotatef(2F, 0F, 0.0F, 1.0F); GL11.glDepthMask(false); renderer.drawString(username, 0, 0, 0); GL11.glDepthMask(true); } GL11.glPopMatrix(); GL11.glPopMatrix(); } }