public Player(Vector3f position)
	{
		if(gunMesh == null)
		{
			gunMesh = new Mesh();
			
			float sizeY = GUN_SIZE;
			float sizeX = (float)((double)sizeY / (1.0379746835443037974683544303797 * 2.0));
			
			float offsetX = 0.05f;
			float offsetY = 0.01f;
			
			float texMinX = -offsetX;
			float texMaxX = -1 - offsetX;
			float texMinY = -offsetY;
			float texMaxY = 1 - offsetY;
			
			Vertex[] verts = new Vertex[]{new Vertex(new Vector3f(-sizeX,0,0), new Vector2f(texMaxX,texMaxY)),
										  new Vertex(new Vector3f(-sizeX,sizeY,0), new Vector2f(texMaxX,texMinY)),
										  new Vertex(new Vector3f(sizeX,sizeY,0), new Vector2f(texMinX,texMinY)),
										  new Vertex(new Vector3f(sizeX,0,0), new Vector2f(texMinX,texMaxY))};
			
			int[] indices = new int[] {0,1,2,
					   				   0,2,3};
			
			gunMesh.addVertices(verts, indices);
		}
		
		if(gunMaterial == null)
		{
			gunMaterial = new Material(ResourceLoader.loadTexture("PISGB0.png"));
		}
		
		if(gunFireMaterial == null)
		{
			gunFireMaterial = new Material(ResourceLoader.loadTexture("PISFA0.png"));
		}
		
		playerCamera = new Camera(position);
		health = 100;
		
		if(gunTransform == null)
		{
			gunTransform = new Transform(playerCamera.getPos());
		}
		
		gunFireTime = 0;
		mouseLocked = true;
		Input.setMousePosition(centerPosition);
		Input.setCursor(false);
		movementVector = zeroVector;
		width = PLAYER_WIDTH;
		rand = new Random();
	}