package joshie.harvest.buildings.render;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.VertexBuffer;
import net.minecraft.client.renderer.WorldVertexBufferUploader;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.vertex.VertexFormat;
import net.minecraft.client.renderer.vertex.VertexFormatElement;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.nio.ByteBuffer;
import java.util.List;
@SideOnly(Side.CLIENT)
public class BuildingVertexUploader extends WorldVertexBufferUploader {
@Override
public void draw(VertexBuffer vertexBufferIn) {
if (vertexBufferIn.getVertexCount() > 0) {
GlStateManager.enableTexture2D();
OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit);
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
VertexFormat vertexformat = vertexBufferIn.getVertexFormat();
int i = vertexformat.getNextOffset();
ByteBuffer bytebuffer = vertexBufferIn.getByteBuffer();
List<VertexFormatElement> list = vertexformat.getElements();
for (int j = 0; j < list.size(); ++j) {
bytebuffer.position(vertexformat.getOffset(j));
list.get(j).getUsage().preDraw(vertexformat, j, i, bytebuffer);
}
GlStateManager.glDrawArrays(vertexBufferIn.getDrawMode(), 0, vertexBufferIn.getVertexCount());
int i1 = 0;
for (int j1 = list.size(); i1 < j1; ++i1) {
list.get(i1).getUsage().postDraw(vertexformat, i1, i, bytebuffer);
}
}
}
}