mirror of
https://github.com/GTNewHorizons/TinkersConstruct.git
synced 2026-11-13 17:04:24 +00:00
76 lines
2.4 KiB
Java
76 lines
2.4 KiB
Java
package tconstruct.tools.model;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.gui.FontRenderer;
|
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.EnumChatFormatting;
|
|
import org.lwjgl.opengl.GL11;
|
|
import tconstruct.tools.logic.BattlesignLogic;
|
|
|
|
public class BattlesignTesr extends TileEntitySpecialRenderer
|
|
{
|
|
|
|
public void renderTileEntityAt (BattlesignLogic te, double x, double y, double z, float something)
|
|
{
|
|
GL11.glPushMatrix();
|
|
GL11.glDisable(GL11.GL_LIGHTING);
|
|
|
|
float f = 0.016666668F * 0.6666667F;
|
|
|
|
GL11.glTranslated(x, y, z);
|
|
GL11.glScalef(f, -f, f);
|
|
// GL11.glRotatef(180F, 0F, 0F, 1F);
|
|
|
|
FontRenderer fr = Minecraft.getMinecraft().fontRenderer;
|
|
|
|
switch (te.getWorldObj().getBlockMetadata(te.xCoord, te.yCoord, te.zCoord))
|
|
{
|
|
case 0:
|
|
GL11.glRotatef(-90F, 0F, 1F, 0F);
|
|
GL11.glTranslatef(5F, -96F, -37F);
|
|
break;
|
|
case 1:
|
|
GL11.glRotatef(90F, 0F, 1F, 0F);
|
|
GL11.glTranslatef(-85F, -96F, 53F);
|
|
break;
|
|
case 2:
|
|
GL11.glTranslatef(5F, -96F, 53F);
|
|
break;
|
|
case 3:
|
|
GL11.glRotatef(180F, 0F, 1F, 0F);
|
|
GL11.glTranslatef(-85F, -96F, -37F);
|
|
break;
|
|
}
|
|
|
|
String strings[] = te.getText();
|
|
|
|
if (strings != null && strings.length > 0)
|
|
{
|
|
float lum = calcLuminance(te.getWorldObj().getBlock(te.xCoord, te.yCoord, te.zCoord).colorMultiplier(te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord));
|
|
|
|
for (int i = 0; i < strings.length; i++)
|
|
{
|
|
fr.drawString((lum >= 35F ? EnumChatFormatting.BLACK : lum >= 31F ? EnumChatFormatting.GRAY : EnumChatFormatting.WHITE) + strings[i], -fr.getStringWidth(strings[i]) / 2 + 40, 10 * i, 0);
|
|
}
|
|
}
|
|
|
|
GL11.glPopMatrix();
|
|
}
|
|
|
|
private float calcLuminance (int rgb)
|
|
{
|
|
int r = (rgb & 0xff0000) >> 16;
|
|
int g = (rgb & 0xff00) >> 8;
|
|
int b = (rgb & 0xff);
|
|
|
|
return (r * 0.299f + g * 0.587f + b * 0.114f) / 3;
|
|
}
|
|
|
|
@Override
|
|
public void renderTileEntityAt (TileEntity te, double x, double y, double z, float something)
|
|
{
|
|
this.renderTileEntityAt((BattlesignLogic) te, x, y, z, something);
|
|
}
|
|
}
|