package com.fredtargaryen.floocraft.tileentity.specialrenderer;
import com.fredtargaryen.floocraft.DataReference;
import com.fredtargaryen.floocraft.tileentity.TileEntityFloowerPot;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.VertexBuffer;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11;
public class TileEntityPotRenderer extends TileEntitySpecialRenderer
{
@Override
//"Relative" means distance on this axis from block to player's eye
public void renderTileEntityAt(TileEntity te, double relativeX, double relativeY, double relativeZ, float partialTicks, int blockDamage)
{
ItemStack stack = ((TileEntityFloowerPot)te).getStackInSlot(0);
if(stack != null && stack.getCount() > 0)
{
GL11.glPushMatrix();
GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
GlStateManager.translate(relativeX, relativeY, relativeZ);
Tessellator t = Tessellator.getInstance();
VertexBuffer r = t.getBuffer();
// set the key rendering flags appropriately...
GL11.glDisable(GL11.GL_LIGHTING); // turn off "item" lighting (face brightness depends on which direction it is facing)
GL11.glDisable(GL11.GL_BLEND); // turn off "alpha" transparency blending
GL11.glDepthMask(true); // quad is hidden behind other objects
this.bindTexture(DataReference.TP_BACKGROUND);
r.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
double level = (((float)stack.getCount() / 64) * 0.3125) + 0.0625;
r.pos(0.625, level, 0.625).tex(1.0, 1.0).endVertex();
r.pos(0.625, level, 0.375).tex(1.0, 0.0).endVertex();
r.pos(0.375, level, 0.375).tex(0.0, 0.0).endVertex();
r.pos(0.375, level, 0.625).tex(0.0, 1.0).endVertex();
t.draw();
GL11.glPopAttrib();
GL11.glPopMatrix();
}
}
}