okay i will try.
So for now only thing whats not working is transperasy for glass and leaves but thats diferent story i dont know whay that is.
Anyway my problem is that i have my axe script which Vermeer has well writen and it works okay but now i want to add my won tool to objects package so i added pickaxe which will eventualy be an axe for wood choping. So all what i want from you is to excplain me how orginal axe (which looks like pick axe) is writen litle explanations on how its rendered nly with comments in code.
So here is code.I dont want you to add more code to it or something else just explain me what is what in it so i can make my own tool.
package objects;
import java.nio.FloatBuffer;
import org.lwjgl.opengl.GL11;
public class Axe {
public static void VertexData(FloatBuffer vHandle,float xOset, float yOset, float zOset,float tint){
float side = 0.15f;
float side2 = 0.3f;
float s= 0.0625f; //texture size 1/16
float h = s*0;
//front face
//quad 1 bottom
vHandle.put(-0.5f + xOset).put(-0.5f + yOset).put(+0.5f + zOset); // vertex bottom left
vHandle.put(tint-side2).put(tint-side2).put(tint-side2);
vHandle.put(h).put(s); // texture
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(-0.5f+ yOset).put(+0.5f + zOset); // v bottom right
vHandle.put(tint-side2).put(tint-side2).put(tint-side2);
vHandle.put(h+s).put(s); // t
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(+0.5f+ yOset).put(+0.5f + zOset); // v top right
vHandle.put(tint-side).put(tint-side).put(tint-side);
vHandle.put(h+s).put(0); // t
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(+0.5f+ yOset).put(+0.5f + zOset); // v top left
vHandle.put(tint-side).put(tint-side).put(tint-side);
vHandle.put(h).put(0); //t
// right face
// triangle 1 bottom
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(-0.5f+ yOset).put(+0.5f + zOset); // v
vHandle.put(tint-side2).put(tint-side2).put(tint-side2);
vHandle.put(h).put(s); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(-0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint-side2).put(tint-side2).put(tint-side2);
vHandle.put(h+s).put(s); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(+0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint-side).put(tint-side).put(tint-side);
vHandle.put(h+s).put(0); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(+0.5f+ yOset).put(+0.5f + zOset); // v
vHandle.put(tint-side).put(tint-side).put(tint-side);
vHandle.put(h).put(0); //
//back face
//triangle 1 bottom
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(-0.5f+ yOset).put(-0.5f + zOset); // vertex
vHandle.put(tint-side2).put(tint-side2).put(tint-side2);
vHandle.put(h).put(s); // texture
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(-0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint-side2).put(tint-side2).put(tint-side2);
vHandle.put(h+s).put(s); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(+0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint-side).put(tint-side).put(tint-side);
vHandle.put(h+s).put(0); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(+0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint-side).put(tint-side).put(tint-side);
vHandle.put(h).put(0); // c blue
//top face
//triangle 1 bottom
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(+0.5f+ yOset).put(+0.5f + zOset); // vertex
vHandle.put(tint).put(tint).put(tint);
vHandle.put(h).put(s); // texture
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(+0.5f+ yOset).put(+0.5f + zOset); // v
vHandle.put(tint).put(tint).put(tint);
vHandle.put(h+s).put(s); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(+0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint).put(tint).put(tint);
vHandle.put(h+s).put(0); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(+0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint).put(tint).put(tint);
vHandle.put(h).put(0); // c blue
// left face
// triangle 1 bottom
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(-0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint-side2).put(tint-side2).put(tint-side2);
vHandle.put(h).put(s); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(-0.5f+ yOset).put(+0.5f + zOset); // v
vHandle.put(tint-side2).put(tint-side2).put(tint-side2);
vHandle.put(h+s).put(s); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(+0.5f+ yOset).put(+0.5f + zOset); // v
vHandle.put(tint-side).put(tint-side).put(tint-side);
vHandle.put(h+s).put(0); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(+0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint-side).put(tint-side).put(tint-side);
vHandle.put(h).put(0); //
//bottom face
//triangle 1 bottom
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(-0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint).put(tint).put(tint);
vHandle.put(h).put(s); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(+0.5f+ xOset).put(-0.5f+ yOset).put(+0.5f + zOset); // v
vHandle.put(tint).put(tint).put(tint);
vHandle.put(h+s).put(s); //
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(-0.5f+ yOset).put(+0.5f + zOset); // vertex
vHandle.put(tint).put(tint).put(tint);
vHandle.put(h+s).put(0); // texture
//vHandle.put(tint).put(tint).put(tint);
vHandle.put(-0.5f+ xOset).put(-0.5f+ yOset).put(-0.5f + zOset); // v
vHandle.put(tint).put(tint).put(tint);
vHandle.put(h).put(0); // c
}
public static void RenderVertexColour(int textureID, float BlockSize){
GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureID);//select texture
//GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE);
//
float i = 0.5f;
//float side = 0.15f;
//float side2 = 0.3f;
float size= 0.0625f; //texture size 1/16
float Hoffset = size*0f;
float Voffset = size*0f;
GL11.glColor3f(0.6f,0.6f, 0.6f);
//GL11.glColor4d(1,1,1,1);
GL11.glBegin(GL11.GL_QUADS);
Hoffset = size*1f;
Voffset = size*1f;
// Top Face wood
GL11.glColor3f(1f,1f, 1f);
GL11.glNormal3f(0.0f, i, 0.0f); // Normal Pointing Up
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(-0.08f, i, -0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset);GL11.glVertex3f(-0.08f, i, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset); GL11.glVertex3f(0.08f, i, 0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size);GL11.glVertex3f(0.08f, i, -0.05f); // Top Right Of The Texture and Quad
GL11.glColor3f(0.6f,0.6f, 0.6f);
// Hoffset = size*1f;
Voffset = size*0f;
// Top Face metal right
GL11.glColor3f(1f,1f, 1f);
GL11.glNormal3f(0.0f, i, 0.0f); // Normal Pointing Up
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(0.08f, 0.4f, -0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset);GL11.glVertex3f(0.08f, 0.4f, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset); GL11.glVertex3f(0.5f, 0.2f, 0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size);GL11.glVertex3f(0.5f, 0.2f, -0.05f); // Top Right Of The Texture and Quad
GL11.glColor3f(0.6f,0.6f, 0.6f);
// Top Face metal left
GL11.glColor3f(1f,1f, 1f);
GL11.glNormal3f(0.0f, i, 0.0f); // Normal Pointing Up
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(-0.5f, 0.2f, -0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset);GL11.glVertex3f(-0.5f, 0.2f, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset); GL11.glVertex3f(-0.08f, 0.4f, 0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size);GL11.glVertex3f(-0.08f, 0.4f, -0.05f); // Top Right Of The Texture and Quad
GL11.glColor3f(0.6f,0.6f, 0.6f);
//front of axe
Hoffset = size*0f;
Voffset = size*1f;
// Front Face ..............................................................................................
GL11.glNormal3f(0.0f, 0.0f, i); // Normal Pointing Towards Viewer
// bottom x , y
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(-0.04f, -i, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size ); GL11.glVertex3f(0.04f, -i, 0.05f); // Bottom Right Of The Texture and Quad
//top
GL11.glTexCoord2f(Hoffset + size,Voffset );GL11.glVertex3f(0.07f, 0.3f, 0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset ); GL11.glVertex3f(-0.07f, 0.3f, 0.05f); // Top Left Of The Texture and Quad
// Front Face ..............................................................................................
GL11.glNormal3f(0.0f, 0.0f, i); // Normal Pointing Towards Viewer
// bottom x , y
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(-0.08f, 0.4f, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size ); GL11.glVertex3f(0.08f, 0.4f, 0.05f); // Bottom Right Of The Texture and Quad
//top
GL11.glTexCoord2f(Hoffset + size,Voffset );GL11.glVertex3f(0.08f, 0.5f, 0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset ); GL11.glVertex3f(-0.08f, 0.5f, 0.05f); // Top Left Of The Texture and Quad
//front of axe
Hoffset = size*1f;
Voffset = size*0f;
//metal part
// Front Face ..............................................................................................
GL11.glNormal3f(0.0f, 0.0f, i); // Normal Pointing Towards Viewer
// bottom x , y
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(-0.07f, 0.3f, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size ); GL11.glVertex3f(0.07f, 0.3f, 0.05f); // Bottom Right Of The Texture and Quad
//top
GL11.glTexCoord2f(Hoffset + size,Voffset );GL11.glVertex3f(0.08f, 0.4f, 0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset ); GL11.glVertex3f(-0.08f, 0.4f, 0.05f); // Top Left Of The Texture and Quad
//metal part spick left
// Front Face ..............................................................................................
GL11.glNormal3f(0.0f, 0.0f, i); // Normal Pointing Towards Viewer
// bottom x , y
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(-0.5f, 0.2f, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size ); GL11.glVertex3f(-0.07f, 0.3f, 0.05f); // Bottom Right Of The Texture and Quad
//top
GL11.glTexCoord2f(Hoffset + size,Voffset );GL11.glVertex3f(-0.08f, 0.4f, 0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset ); GL11.glVertex3f(-0.5f, 0.2f, 0.05f); // Top Left Of The Texture and Quad
//metal part spick right
// Front Face ..............................................................................................
GL11.glNormal3f(0.0f, 0.0f, i); // Normal Pointing Towards Viewer
// bottom x , y
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(0.07f, 0.3f, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size ); GL11.glVertex3f(0.5f, 0.2f, 0.05f); // Bottom Right Of The Texture and Quad
//top
GL11.glTexCoord2f(Hoffset + size,Voffset );GL11.glVertex3f(0.5f, 0.2f, 0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset ); GL11.glVertex3f(0.08f, 0.4f, 0.05f); // Top Left Of The Texture and Quad
Hoffset = size*0f;
Voffset = size*1f;
// Back Face
// GL11.glNormal3f(0.0f, 0.0f, -i); // Normal Pointing Away From Viewer
GL11.glTexCoord2f(Hoffset + size, Voffset + size); GL11.glVertex3f(-0.08f, 0.4f, -0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset ); GL11.glVertex3f(-0.08f, i, -0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset ); GL11.glVertex3f(0.08f, i, -0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(0.08f, 0.4f, -0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size); GL11.glVertex3f(-0.04f, -0.5f, -0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset ); GL11.glVertex3f(-0.07f, 0.3f, -0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset ); GL11.glVertex3f(0.07f, 0.3f, -0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(0.04f,-0.5f, -0.05f); // Bottom Left Of The Texture and Quad
Hoffset = size*1f;
Voffset = size*0f;
//metal on back right
GL11.glTexCoord2f(Hoffset + size, Voffset + size); GL11.glVertex3f(0.07f, 0.3f, -0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset ); GL11.glVertex3f(0.08f, 0.4f, -0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset ); GL11.glVertex3f(0.5f, 0.2f, -0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(0.5f,0.2f, -0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size); GL11.glVertex3f(-0.07f, 0.3f, -0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(-0.5f,0.2f, -0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset ); GL11.glVertex3f(-0.08f, 0.4f, -0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset ); GL11.glVertex3f(-0.5f, 0.2f, -0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset + size); GL11.glVertex3f(0.07f, 0.3f, -0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(-0.07f,0.3f, -0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset ); GL11.glVertex3f(-0.08f, 0.4f, -0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset ); GL11.glVertex3f(+0.08f, 0.4f, -0.05f); // Top Left Of The Texture and Quad
// Bottom Face
Hoffset = size*1f;
Voffset = size*1f;
GL11.glNormal3f(0.0f, -i, 0.0f); // Normal Pointing Down
GL11.glTexCoord2f(Hoffset + size,Voffset + size); GL11.glVertex3f(-0.04f, -i, -0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(0.04f, -i, -0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset);GL11.glVertex3f(0.04f, -i, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset); GL11.glVertex3f(-0.04f, -i, 0.05f); // Bottom Right Of The Texture and Quad
Hoffset = size*1f;
Voffset = size*0f;
GL11.glTexCoord2f(Hoffset + size,Voffset + size); GL11.glVertex3f(-0.5f, 0.2f, -0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(-0.07f, 0.3f, -0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset);GL11.glVertex3f(-0.07f, 0.3f, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset); GL11.glVertex3f(-0.5f, 0.2f, 0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size,Voffset + size); GL11.glVertex3f(0.07f, 0.3f, -0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(0.5f, 0.2f, -0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset);GL11.glVertex3f(0.5f, 0.2f, 0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset); GL11.glVertex3f(0.07f, 0.3f, 0.05f); // Bottom Right Of The Texture and Quad
// Right face
Hoffset = size*0f;
Voffset = size*1f;
GL11.glNormal3f(i, 0.0f, 0.0f); // Normal Pointing Right
GL11.glTexCoord2f(Hoffset + size, Voffset + size); GL11.glVertex3f(0.04f, -i, -0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset);GL11.glVertex3f(0.07f, 0.3f, -0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset); GL11.glVertex3f(0.07f, 0.3f, 0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(0.04f, -i, 0.05f); // Bottom Left Of The Texture and Quad
// Right face top
Hoffset = size*0f;
Voffset = size*1f;
GL11.glNormal3f(i, 0.0f, 0.0f); // Normal Pointing Right
GL11.glTexCoord2f(Hoffset + size, Voffset + size); GL11.glVertex3f(0.08f, 0.4f, -0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size, Voffset);GL11.glVertex3f(0.08f, 0.5f, -0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset); GL11.glVertex3f(0.08f, 0.5f, 0.05f); // Top Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset + size); GL11.glVertex3f(0.08f, 0.4f, 0.05f); // Bottom Left Of The Texture and Quad
// Left Face
//top
GL11.glNormal3f(-i, 0.0f, 0.0f); // Normal Pointing Left
GL11.glTexCoord2f(Hoffset,Voffset + size); GL11.glVertex3f(-0.08f, 0.4f, -0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size,Voffset + size); GL11.glVertex3f(-0.08f, 0.4f, 0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size,Voffset);GL11.glVertex3f(-0.08f, i, 0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset); GL11.glVertex3f(-0.08f, i, -0.05f); // Top Left Of The Texture and Quad
// Left Face
//top
GL11.glNormal3f(-i, 0.0f, 0.0f); // Normal Pointing Left
GL11.glTexCoord2f(Hoffset,Voffset + size); GL11.glVertex3f(-0.04f, -0.5f, -0.05f); // Bottom Left Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size,Voffset + size); GL11.glVertex3f(-0.04f, -0.5f, 0.05f); // Bottom Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset + size,Voffset);GL11.glVertex3f(-0.07f, 0.3f, 0.05f); // Top Right Of The Texture and Quad
GL11.glTexCoord2f(Hoffset, Voffset); GL11.glVertex3f(-0.07f,0.3f, -0.05f); // Top Left Of The Texture and Quad
GL11.glEnd();
}
}
After i will know how to make my tool for example picaxe(axe actualy) then i will probably ask help for transperent blosk like glass which actualy need to work alredy besauce Vermeer alredy added that to code and that worked for him.