@@ -0,0 +1,1490 @@
+package eco;%0A%0Aimport org.lwjgl.opengl.GL11;%0Aimport org.lwjgl.util.vector.Vector3f;%0A%0Apublic class Camera %7B%0A%0A%09Vector3f position;%0A%09float yaw = 0.0f;%0A%09float pitch = 0.0f;%0A%0A%09float dx = 0.0f;%0A%09float dy = 0.0f;%0A%09float dt = 0.0f;%0A%09float lastTime = 0.0f;%0A%09float time = 0.0f;%0A%0A%09float mouseSensitivity = 0.15f;%0A%09float movementSpeed = 10.0f;%0A%0A%09public boolean markForUpdate = false;%0A%0A%09public Camera(float x, float y, float z)%7B%0A%09%09position = new Vector3f(x, y, z);%0A%09%09pitch = 0f;%09%0A%09%7D%0A%0A%09public void moveForward(float distance)%7B%0A%09%09position.x += distance * (float) Math.sin(Math.toRadians(yaw));%0A%09%09position.z -= distance * (float) Math.cos(Math.toRadians(yaw));%09%0A%09%7D%0A%0A%09public void moveBack(float distance)%7B%0A%09%09position.x -= distance * (float) Math.sin(Math.toRadians(yaw));%0A%09%09position.z += distance * (float) Math.cos(Math.toRadians(yaw));%09%0A%09%7D%0A%0A%09public void moveLeft(float distance)%0A%09%7B%0A%09    position.x -= distance * (float)Math.sin(Math.toRadians(yaw-90));%0A%09    position.z += distance * (float)Math.cos(Math.toRadians(yaw-90));%0A%09%7D%0A%0A%09public void moveRight(float distance)%0A%09%7B%0A%09    position.x -= distance * (float)Math.sin(Math.toRadians(yaw+90));%0A%09    position.z += distance * (float)Math.cos(Math.toRadians(yaw+90));%0A%09%7D%0A%0A%09public void moveUp(float distance)%7B%0A%09%09position.y -= distance;%09%0A%09%7D%0A%09public void moveDown(float distance)%7B%0A%09%09position.y += distance;%09%0A%09%7D%0A%09public void look()%7B%0A%09%09GL11.glRotatef(yaw, 0f, 0f, 1f);%0A%09%09GL11.glRotatef(30, 1f, 0f, 0f);%0A%09%09GL11.glTranslatef(-position.x, position.y, -position.z);%0A%09%7D%0A%0A%7D%0A

Create Camera.java