Refactoring Travis
This commit is contained in:
parent
c423e05fc2
commit
e4310b8238
1894 changed files with 54 additions and 320 deletions
|
@ -1,291 +0,0 @@
|
|||
package mrdev023.rendering;
|
||||
|
||||
import static org.lwjgl.opengl.GL11.*;
|
||||
import mrdev023.blocks.*;
|
||||
import mrdev023.entity.*;
|
||||
import mrdev023.gameengine.*;
|
||||
import mrdev023.main.*;
|
||||
import mrdev023.math.*;
|
||||
import mrdev023.world.*;
|
||||
import mrdev023.world.chunk.*;
|
||||
|
||||
public class Camera {
|
||||
|
||||
private static Vector3f position = new Vector3f(0, 4, 0);
|
||||
private static Vector2f rotation = new Vector2f(0, 120);
|
||||
private static PlayerRayCast playerRaycast;
|
||||
private static final float HEIGHT = (float) (1.5f - (Block.getSize() / 2.0f));
|
||||
public static boolean gravity = true;
|
||||
public static float gravityFactor = 0;
|
||||
public static boolean grounded = false;
|
||||
public static boolean noClip = false;
|
||||
|
||||
public static void initCamera() {
|
||||
playerRaycast = new PlayerRayCast();
|
||||
}
|
||||
|
||||
public static void renderCamera() {
|
||||
if (position.getY() < (int)((new Noise(GameEngine.getGameState().getWorld().seed, GameEngine
|
||||
.getGameState().getWorld().octave,
|
||||
GameEngine.getGameState().getWorld().amplitude).getNoise(position.getX(),
|
||||
position.getZ())) + 1)) {
|
||||
|
||||
position.setY((int)((new Noise(GameEngine.getGameState().getWorld().seed, GameEngine
|
||||
.getGameState().getWorld().octave,
|
||||
GameEngine.getGameState().getWorld().amplitude).getNoise(position.getX(),
|
||||
position.getZ())) + 2));
|
||||
}
|
||||
glLoadIdentity();
|
||||
glRotatef(rotation.getX(), 1, 0, 0);
|
||||
glRotatef(rotation.getY(), 0, 1, 0);
|
||||
glTranslatef(-position.getX(), -(position.getY() + getHeight()),
|
||||
-position.getZ());
|
||||
}
|
||||
|
||||
public static void move(float xa, float ya, float za) {
|
||||
gravityFactor += World.GRAVITY * 0.01f;
|
||||
if (grounded)
|
||||
gravityFactor = 0;
|
||||
ya -= gravityFactor;
|
||||
int xStep = (int) Math.abs(xa * 100);
|
||||
for (int i = 0; i < xStep; i++) {
|
||||
if (!isColliding(xa / xStep, 0, 0) || noClip) {
|
||||
position.x += xa / xStep;
|
||||
} else {
|
||||
xa = 0;
|
||||
}
|
||||
}
|
||||
int yStep = (int) Math.abs(ya * 100);
|
||||
for (int i = 0; i < yStep; i++) {
|
||||
if (!isColliding(0, ya / yStep, 0) || noClip) {
|
||||
position.y += ya / yStep;
|
||||
} else {
|
||||
ya = 0;
|
||||
}
|
||||
}
|
||||
int zStep = (int) Math.abs(za * 100);
|
||||
for (int i = 0; i < zStep; i++) {
|
||||
if (!isColliding(0, 0, za / zStep) || noClip) {
|
||||
position.z += za / zStep;
|
||||
} else {
|
||||
za = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static Vector3f getDirection() {
|
||||
Vector3f r = new Vector3f();
|
||||
|
||||
float cosY = (float) Math.cos(Math.toRadians(rotation.getY() - 90));
|
||||
float sinY = (float) Math.sin(Math.toRadians(rotation.getY() - 90));
|
||||
float cosP = (float) Math.cos(Math.toRadians(-rotation.getX()));
|
||||
float sinP = (float) Math.sin(Math.toRadians(-rotation.getX()));
|
||||
|
||||
r.setX(cosY * cosP);
|
||||
r.setY(sinP);
|
||||
r.setZ(sinY * cosP);
|
||||
|
||||
r.normalize();
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
public static Vector3f getPosition() {
|
||||
return position;
|
||||
}
|
||||
|
||||
public static void setPosition(Vector3f position) {
|
||||
Camera.position = position;
|
||||
}
|
||||
|
||||
public static Vector2f getRotation() {
|
||||
return rotation;
|
||||
}
|
||||
|
||||
public static void setRotation(Vector2f rotation) {
|
||||
Camera.rotation = rotation;
|
||||
}
|
||||
|
||||
public static float getHeight() {
|
||||
return HEIGHT;
|
||||
}
|
||||
|
||||
public static PlayerRayCast getPlayerRaycast() {
|
||||
return playerRaycast;
|
||||
}
|
||||
|
||||
public static void setPlayerRaycast(PlayerRayCast playerRaycast) {
|
||||
Camera.playerRaycast = playerRaycast;
|
||||
}
|
||||
|
||||
public static boolean isColliding(float xa, float ya, float za) {
|
||||
World world = GameEngine.getGameState().getWorld();
|
||||
float r = 0.3f;
|
||||
|
||||
boolean nx = false, ny = false, nz = false;
|
||||
|
||||
int x0 = (int) (position.x + xa - r);
|
||||
int x1 = (int) (position.x + xa + r);
|
||||
|
||||
int y0 = (int) (position.y + ya - r);
|
||||
int y1 = (int) (position.y + ya + r);
|
||||
|
||||
int z0 = (int) (position.z + za - r);
|
||||
int z1 = (int) (position.z + za + r);
|
||||
|
||||
int xmid = (int) (position.x + xa);
|
||||
int yb = (int) (position.y + ya - r - 0.01f);
|
||||
int zmid = (int) (position.z + za);
|
||||
|
||||
if (xmid < 0)
|
||||
nx = true;
|
||||
else
|
||||
nx = false;
|
||||
if (yb < 0)
|
||||
ny = true;
|
||||
else
|
||||
ny = false;
|
||||
if (zmid < 0)
|
||||
nz = true;
|
||||
else
|
||||
nz = false;
|
||||
if (world.getBlock(xmid, yb, zmid, nx, ny, nz) != null) {
|
||||
grounded = true;
|
||||
} else {
|
||||
grounded = false;
|
||||
}
|
||||
|
||||
if (x0 < 0)
|
||||
nx = true;
|
||||
else
|
||||
nx = false;
|
||||
if (y0 < 0)
|
||||
ny = true;
|
||||
else
|
||||
ny = false;
|
||||
if (z0 < 0)
|
||||
nz = true;
|
||||
else
|
||||
nz = false;
|
||||
if (world.getBlock(x0, y0, z0, nx, ny, nz) != null)
|
||||
return true;
|
||||
|
||||
if (x1 < 0)
|
||||
nx = true;
|
||||
else
|
||||
nx = false;
|
||||
if (y0 < 0)
|
||||
ny = true;
|
||||
else
|
||||
ny = false;
|
||||
if (z0 < 0)
|
||||
nz = true;
|
||||
else
|
||||
nz = false;
|
||||
if (world.getBlock(x1, y0, z0, nx, ny, nz) != null)
|
||||
return true;
|
||||
|
||||
if (x1 < 0)
|
||||
nx = true;
|
||||
else
|
||||
nx = false;
|
||||
if (y1 < 0)
|
||||
ny = true;
|
||||
else
|
||||
ny = false;
|
||||
if (z0 < 0)
|
||||
nz = true;
|
||||
else
|
||||
nz = false;
|
||||
if (world.getBlock(x1, y1, z0, nx, ny, nz) != null)
|
||||
return true;
|
||||
|
||||
if (x0 < 0)
|
||||
nx = true;
|
||||
else
|
||||
nx = false;
|
||||
if (y1 < 0)
|
||||
ny = true;
|
||||
else
|
||||
ny = false;
|
||||
if (z0 < 0)
|
||||
nz = true;
|
||||
else
|
||||
nz = false;
|
||||
if (world.getBlock(x0, y1, z0, nx, ny, nz) != null)
|
||||
return true;
|
||||
|
||||
if (x0 < 0)
|
||||
nx = true;
|
||||
else
|
||||
nx = false;
|
||||
if (y0 < 0)
|
||||
ny = true;
|
||||
else
|
||||
ny = false;
|
||||
if (z1 < 0)
|
||||
nz = true;
|
||||
else
|
||||
nz = false;
|
||||
if (world.getBlock(x0, y0, z1, nx, ny, nz) != null)
|
||||
return true;
|
||||
|
||||
if (x1 < 0)
|
||||
nx = true;
|
||||
else
|
||||
nx = false;
|
||||
if (y0 < 0)
|
||||
ny = true;
|
||||
else
|
||||
ny = false;
|
||||
if (z1 < 0)
|
||||
nz = true;
|
||||
else
|
||||
nz = false;
|
||||
if (world.getBlock(x1, y0, z1, nx, ny, nz) != null)
|
||||
return true;
|
||||
|
||||
if (x1 < 0)
|
||||
nx = true;
|
||||
else
|
||||
nx = false;
|
||||
if (y1 < 0)
|
||||
ny = true;
|
||||
else
|
||||
ny = false;
|
||||
if (z1 < 0)
|
||||
nz = true;
|
||||
else
|
||||
nz = false;
|
||||
if (world.getBlock(x1, y1, z1, nx, ny, nz) != null)
|
||||
return true;
|
||||
|
||||
if (x0 < 0)
|
||||
nx = true;
|
||||
else
|
||||
nx = false;
|
||||
if (y1 < 0)
|
||||
ny = true;
|
||||
else
|
||||
ny = false;
|
||||
if (z1 < 0)
|
||||
nz = true;
|
||||
else
|
||||
nz = false;
|
||||
if (world.getBlock(x0, y1, z1, nx, ny, nz) != null)
|
||||
return true;
|
||||
|
||||
// if(world.getBlock(x0, y0+1, z0) != null) return true;
|
||||
// if(world.getBlock(x1, y0+1, z0) != null) return true;
|
||||
// if(world.getBlock(x1, y1+1, z0) != null) return true;
|
||||
// if(world.getBlock(x0, y1+1, z0) != null) return true;
|
||||
//
|
||||
// if(world.getBlock(x0, y0+1, z1) != null) return true;
|
||||
// if(world.getBlock(x1, y0+1, z1) != null) return true;
|
||||
// if(world.getBlock(x1, y1+1, z1) != null) return true;
|
||||
// if(world.getBlock(x0, y1+1, z1) != null) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue