Move vectors to static creators, for caching

This commit is contained in:
Kenzie Togami
2018-10-19 13:13:32 -07:00
committed by IronApollo
parent a9919d130c
commit 4d6045813c
138 changed files with 670 additions and 531 deletions

View File

@ -30,27 +30,27 @@ import java.util.HashMap;
*/
public enum Direction {
NORTH(new Vector3(0, 0, -1), Flag.CARDINAL, 3, 1),
EAST(new Vector3(1, 0, 0), Flag.CARDINAL, 0, 2),
SOUTH(new Vector3(0, 0, 1), Flag.CARDINAL, 1, 3),
WEST(new Vector3(-1, 0, 0), Flag.CARDINAL, 2, 0),
NORTH(Vector3.at(0, 0, -1), Flag.CARDINAL, 3, 1),
EAST(Vector3.at(1, 0, 0), Flag.CARDINAL, 0, 2),
SOUTH(Vector3.at(0, 0, 1), Flag.CARDINAL, 1, 3),
WEST(Vector3.at(-1, 0, 0), Flag.CARDINAL, 2, 0),
UP(new Vector3(0, 1, 0), Flag.UPRIGHT, -1, -1),
DOWN(new Vector3(0, -1, 0), Flag.UPRIGHT, -1, -1),
UP(Vector3.at(0, 1, 0), Flag.UPRIGHT, -1, -1),
DOWN(Vector3.at(0, -1, 0), Flag.UPRIGHT, -1, -1),
NORTHEAST(new Vector3(1, 0, -1), Flag.ORDINAL, 7, 8),
NORTHWEST(new Vector3(-1, 0, -1), Flag.ORDINAL, 9, 6),
SOUTHEAST(new Vector3(1, 0, 1), Flag.ORDINAL, 6, 9),
SOUTHWEST(new Vector3(-1, 0, 1), Flag.ORDINAL, 8, 7),
NORTHEAST(Vector3.at(1, 0, -1), Flag.ORDINAL, 7, 8),
NORTHWEST(Vector3.at(-1, 0, -1), Flag.ORDINAL, 9, 6),
SOUTHEAST(Vector3.at(1, 0, 1), Flag.ORDINAL, 6, 9),
SOUTHWEST(Vector3.at(-1, 0, 1), Flag.ORDINAL, 8, 7),
WEST_NORTHWEST(new Vector3(-Math.cos(Math.PI / 8), 0, -Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 9, 6),
WEST_SOUTHWEST(new Vector3(-Math.cos(Math.PI / 8), 0, Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 8, 7),
NORTH_NORTHWEST(new Vector3(-Math.sin(Math.PI / 8), 0, -Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 9, 6),
NORTH_NORTHEAST(new Vector3(Math.sin(Math.PI / 8), 0, -Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 7, 8),
EAST_NORTHEAST(new Vector3(Math.cos(Math.PI / 8), 0, -Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 7, 8),
EAST_SOUTHEAST(new Vector3(Math.cos(Math.PI / 8), 0, Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 6, 9),
SOUTH_SOUTHEAST(new Vector3(Math.sin(Math.PI / 8), 0, Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 6, 9),
SOUTH_SOUTHWEST(new Vector3(-Math.sin(Math.PI / 8), 0, Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 8, 7);
WEST_NORTHWEST(Vector3.at(-Math.cos(Math.PI / 8), 0, -Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 9, 6),
WEST_SOUTHWEST(Vector3.at(-Math.cos(Math.PI / 8), 0, Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 8, 7),
NORTH_NORTHWEST(Vector3.at(-Math.sin(Math.PI / 8), 0, -Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 9, 6),
NORTH_NORTHEAST(Vector3.at(Math.sin(Math.PI / 8), 0, -Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 7, 8),
EAST_NORTHEAST(Vector3.at(Math.cos(Math.PI / 8), 0, -Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 7, 8),
EAST_SOUTHEAST(Vector3.at(Math.cos(Math.PI / 8), 0, Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 6, 9),
SOUTH_SOUTHEAST(Vector3.at(Math.sin(Math.PI / 8), 0, Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 6, 9),
SOUTH_SOUTHWEST(Vector3.at(-Math.sin(Math.PI / 8), 0, Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL, 8, 7);
private final Vector3 direction;
private final BlockVector3 blockVector;
@ -70,7 +70,7 @@ public enum Direction {
private Direction(Vector3 vector, int flags, int left, int right) {
this.direction = vector.normalize();
this.blockVector = new BlockVector3(Math.signum(vector.getX()), Math.signum(vector.getY()), Math.signum(vector.getZ()));
this.blockVector = BlockVector3.at(Math.signum(vector.getX()), Math.signum(vector.getY()), Math.signum(vector.getZ()));
this.flags = flags;
this.left = left;
this.right = right;

View File

@ -61,7 +61,7 @@ public class Location{
* @param z the Z coordinate
*/
public Location(Extent extent, double x, double y, double z) {
this(extent, new Vector3(x, y, z), Vector3.ZERO);
this(extent, Vector3.at(x, y, z), Vector3.ZERO);
}
/**
@ -86,7 +86,7 @@ public class Location{
* @param direction the direction vector
*/
public Location(Extent extent, double x, double y, double z, Vector3 direction) {
this(extent, new Vector3(x, y, z), direction);
this(extent, Vector3.at(x, y, z), direction);
}
/**
@ -101,7 +101,7 @@ public class Location{
* @param pitch the pitch, in degrees
*/
public Location(Extent extent, double x, double y, double z, float yaw, float pitch) {
this(extent, new Vector3(x, y, z), yaw, pitch);
this(extent, Vector3.at(x, y, z), yaw, pitch);
}
/**
@ -212,7 +212,7 @@ public class Location{
double yaw = Math.toRadians(this.getYaw());
double pitch = Math.toRadians(this.getPitch());
double xz = Math.cos(pitch);
return new Vector3(
return Vector3.at(
-xz * Math.sin(yaw),
-Math.sin(pitch),
xz * Math.cos(yaw));

View File

@ -83,7 +83,7 @@ public class TargetBlock {
double h = (checkDistance * Math.cos(Math.toRadians(yRotation)));
offset = new Vector3((h * Math.cos(Math.toRadians(xRotation))),
offset = Vector3.at((h * Math.cos(Math.toRadians(xRotation))),
(checkDistance * Math.sin(Math.toRadians(yRotation))),
(h * Math.sin(Math.toRadians(xRotation))));

View File

@ -44,6 +44,6 @@ public class VectorAdapter implements JsonDeserializer<Vector3> {
double y = jsonArray.get(1).getAsDouble();
double z = jsonArray.get(2).getAsDouble();
return new Vector3(x, y, z);
return Vector3.at(x, y, z);
}
}