package resonantinduction.old.client.render;

import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;

import org.lwjgl.opengl.GL11;

import resonantinduction.core.Reference;
import resonantinduction.mechanical.fluid.TileEntityReleaseValve;
import resonantinduction.old.client.model.ModelLargePipe;
import resonantinduction.old.client.model.ModelReleaseValve;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

@SideOnly(Side.CLIENT)
public class RenderReleaseValve extends TileEntitySpecialRenderer
{
	private ModelLargePipe SixPipe;
	private ModelReleaseValve valve;
	private TileEntity[] ents = new TileEntity[6];

	public static final ResourceLocation VALVE_TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_DIRECTORY + "ReleaseValve.png");

	public RenderReleaseValve()
	{
		SixPipe = new ModelLargePipe();
		valve = new ModelReleaseValve();
	}

	@Override
	public void renderTileEntityAt(TileEntity te, double d, double d1, double d2, float f)
	{
		// Texture file
		GL11.glPushMatrix();
		GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F);
		GL11.glScalef(1.0F, -1F, -1F);
		if (te instanceof TileEntityReleaseValve)
		{
			ents = ((TileEntityReleaseValve) te).connected;
		}
		bindTexture(RenderPipe.TEXTURE);
		if (ents[0] != null)
			SixPipe.renderBottom();
		if (ents[1] != null)
			SixPipe.renderTop();
		if (ents[3] != null)
			SixPipe.renderFront();
		if (ents[2] != null)
			SixPipe.renderBack();
		if (ents[5] != null)
			SixPipe.renderRight();
		if (ents[4] != null)
			SixPipe.renderLeft();
		SixPipe.renderMiddle();
		bindTexture(VALVE_TEXTURE);
		if (ents[1] == null)
			valve.render();
		GL11.glPopMatrix();

	}
}