package com.brandon3055.townbuilder.client.rendering;
import com.brandon3055.townbuilder.tileentity.TileStructureBuilder;
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 org.lwjgl.opengl.GL11;
/**
* Created by Brandon on 22/02/2015.
*/
public class RenderTileStructureBuilder extends TileEntitySpecialRenderer<TileStructureBuilder> {
@Override
public void renderTileEntityAt(TileStructureBuilder te, double x, double y, double z, float partialTicks, int destroyStage) {
if (!te.showPosition.value) {
return;
}
int xSize = te.xSize.value;
int ySize = te.ySize.value;
int zSize = te.zSize.value;
Tessellator tess = Tessellator.getInstance();
GlStateManager.disableTexture2D();
GlStateManager.shadeModel(GL11.GL_SMOOTH);
GlStateManager.enableBlend();
// GlStateManager.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
GlStateManager.disableLighting();
GlStateManager.disableAlpha();
GlStateManager.disableCull();
GlStateManager.depthMask(false);
GlStateManager.pushMatrix();
GlStateManager.translate(x, y, z);
GlStateManager.translate(te.xOffset.value, te.yOffset.value, te.zOffset.value);
VertexBuffer buffer = tess.getBuffer();
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
// tess.startDrawingQuads();
// tess.setBrightness(200);
{//main Cube
// tess.setColorRGBA_F(0f, 1f, 0f, 0.5f);
buffer.pos(0, 0, 0).color(0f, 1f, 0f, 0.5f).endVertex();
buffer.pos(0, ySize, 0).color(0f, 1f, 0f, 0.5f).endVertex();
buffer.pos(xSize, ySize, 0).color(0f, 1f, 0f, 0.5f).endVertex();
buffer.pos(xSize, 0, 0).color(0f, 1f, 0f, 0.5f).endVertex();
// buffer.posGBA_F(0f, 0f, 1f, 0.5f);
buffer.pos(0, 0, 0).color(0f, 0f, 1f, 0.5f).endVertex();
buffer.pos(0, 0, zSize).color(0f, 0f, 1f, 0.5f).endVertex();
buffer.pos(0, ySize, zSize).color(0f, 0f, 1f, 0.5f).endVertex();
buffer.pos(0, ySize, 0).color(0f, 0f, 1f, 0.5f).endVertex();
// buffer.posGBA_F(0f, 0f, 1f, 0.5f);
buffer.pos(xSize, 0, 0).color(0f, 0f, 1f, 0.5f).endVertex();
buffer.pos(xSize, ySize, 0).color(0f, 0f, 1f, 0.5f).endVertex();
buffer.pos(xSize, ySize, zSize).color(0f, 0f, 1f, 0.5f).endVertex();
buffer.pos(xSize, 0, zSize).color(0f, 0f, 1f, 0.5f).endVertex();
// buffer.posGBA_F(0f, 1f, 0.4f, 0.5f);
buffer.pos(0, 0, zSize).color(0f, 1f, 0.4f, 0.5f).endVertex();
buffer.pos(xSize, 0, zSize).color(0f, 1f, 0.4f, 0.5f).endVertex();
buffer.pos(xSize, ySize, zSize).color(0f, 1f, 0.4f, 0.5f).endVertex();
buffer.pos(0, ySize, zSize).color(0f, 1f, 0.4f, 0.5f).endVertex();
// buffer.posGBA_F(1f, 0f, 0f, 0.5f);
buffer.pos(0, 0, 0).color(1f, 0f, 0f, 0.5f).endVertex();
buffer.pos(xSize, 0, 0).color(1f, 0f, 0f, 0.5f).endVertex();
buffer.pos(xSize, 0, zSize).color(1f, 0f, 0f, 0.5f).endVertex();
buffer.pos(0, 0, zSize).color(1f, 0f, 0f, 0.5f).endVertex();
// buffer.posGBA_F(1f, 0f, 0f, 0.5f);
buffer.pos(0, ySize, 0).color(1f, 0f, 0f, 0.5f).endVertex();
buffer.pos(0, ySize, zSize).color(1f, 0f, 0f, 0.5f).endVertex();
buffer.pos(xSize, ySize, zSize).color(1f, 0f, 0f, 0.5f).endVertex();
buffer.pos(xSize, ySize, 0).color(1f, 0f, 0f, 0.5f).endVertex();
}
tess.draw();
GL11.glPopMatrix();
GlStateManager.depthMask(true);
GlStateManager.disableBlend();
GlStateManager.shadeModel(GL11.GL_FLAT);
GlStateManager.enableLighting();
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.enableTexture2D();
GlStateManager.enableAlpha();
}
}